Giter Club home page Giter Club logo

bandysc / wowdatabaseeditor Goto Github PK

View Code? Open in Web Editor NEW
389.0 36.0 141.0 51.16 MB

Integrated development environment (IDE), an editor for Smart Scripts (SAI/smart_scripts) for TrinityCore based servers. Cmangos support work in progress. Featuring a 3D view built with OpenGL and custom ECS framework

License: MIT License

C# 96.83% ANTLR 2.76% Smalltalk 0.01% GLSL 0.28% HLSL 0.04% Shell 0.07% CSS 0.01% HTML 0.01% JavaScript 0.01%
trinitycore smartscript azerothcore-tools avalonia ide avaloniaui mmorpg csharp editor cmangos

wowdatabaseeditor's Introduction

WoW Database Editor

Integrated development environment (IDE) for Smart Scripts and database editing for TrinityCore based servers.

This project is a continuation of Visual SAI Studio, but rewritten from scratch. Anyone is welcome to help :-) Together we can make great wow emu editor! Smart script and database editing is already in good enough shape to use it on daily basis

(screenshots below)

Supported server versions

  • Supported database: TC 3.3.5, TC 4.3.4 ("preservation project"), TC master (9.0.x), AzerothCore (3.3.5)
  • Supported DBC: 3.3.5, 4.3.4, 9.0.1 - 9.1.5

Sponsors

WoW Database Editor is sponsored by Stormforge. Project by Atlantiss and Tauri.

Stormforge

Download latest version

Application has a built-in auto updater, so you do not have to redownload a zip to upgrade.

Mac OS / Linux / Windows version

To run the editor, you need .NET 6 Runtime for your OS.

WoW Database Editor is compatibile with both MacOS, Linux and Windows.

Download links:

I want to contribute!

That's a fantastic news! There is still a lot to do in the IDE, if you do not know what you can do, check out opened issues, especially those marked as "help wanted"

How to build

In order to build WoW Database Editor you need to install .NET 6.0 SDK (it is installed automatically with Visual Studio 2022)

If you want to use Visual Studio, you need Visual Studio 2022. That's because older Visual Studio version doesn't support .NET 6.0!

WoW Database Editor is using git submodules, therefore after you clone, after you pull you have to download submodules:

git submodule update --init --recursive

Now you can open the solution in Visual Studio or other C#/.NET IDE and build. Start LoaderAvalonia project (this part is important!)

To build a version to distribute:

-- Windows version
dotnet publish -c Release --self-contained false -f net8.0 -o bin/wowdatabaseeditor-avalonia-win/ LoaderAvalonia/LoaderAvalonia.csproj -r win7-x64

-- MacOS version
dotnet publish -c Release --self-contained false -f net8.0 -o bin/wowdatabaseeditor-avalonia-mac/ LoaderAvalonia/LoaderAvalonia.csproj -r osx-x64

-- Linux version
dotnet publish -c Release --self-contained false -f net8.0 -o bin/wowdatabaseeditor-avalonia-linux/ LoaderAvalonia/LoaderAvalonia.csproj -r linux-x64

Thanks to:

  • tgjones for Gemini Graph Editor
  • WDBXEditor for dbc loading
  • Atlantiss - the editor begin as internal tool
  • TrinityCore, Cmangos and everyone who contributes to WoW Core!
  • Avalonia - WoW Database Editor is built upon Avalonia UI framework
  • Thenarden - for Nmpq - A Fully-Managed C# MPQ Parser

screenshot16 screenshot8 screenshot9 screenshot10 screenshot11 screenshot12 screenshot13 screenshot14 screenshot15

wowdatabaseeditor's People

Contributors

bandysc avatar bertirean avatar branel avatar crypticaz avatar cyberium avatar dependabot[bot] avatar funjoker avatar insunaa avatar intemporel avatar jackpoz avatar justzerooo avatar krutok avatar mdx7 avatar pelekon avatar sili3011 avatar t1ti avatar timesorrow avatar traesh avatar wingsofaltair avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wowdatabaseeditor's Issues

[Feature] WoW Packet Parser integration

Summary

A really nice addition to the IDE would be integration with WoWPacketParser.

The basic version would be just opening the packet in the IDE, enhanced version (strongly recommend) would be to modify WoWPacketParser to add a new intermediate output format, where packets are in common structure between wow version (maybe protobuf?)

WowPacketParser could be added to the project as git submodule.

[Feature] Better home page

Summary

Current about home page is not really helper, neither for newcomers nor for existing users. It can be enhanced by adding more info how to start and quicker access to loading scripts.

Cannot start a timed action list on self.

Describe the bug
When you select action "Start timed action list id #" you cannot set the type to self.

Version (commit hash)
Build 386

To Reproduce
Steps to reproduce the behavior:

  1. Create a trigger for a creature script
  2. Make an action for a "Start timed action list id #"
  3. Set type to Self
  4. Program reverts to None.

Expected behavior
When you select Self for the type, it should stay as Self and not revert to None.

[Bug] Linux/MacOS versions do not have executable bit set in the zip

Describe the bug
Linux and MacOS releases do not have executable bit set on. This is limitation of appveyor running on windows.

Expected behavior
Those version should have executable bit set on.

Proposed solution
WoW Database Editor updater can unpack the zip, set the bits and pack the zip again.

[Feature] Make „smart edit” tool window opened by default

Is your feature request related to a problem? Please describe.
Smart Edit tool window is hidden by default and probably a lot of users do not know about it. It could be opened by default and in case someone does not like it, it can be easily closed.

Describe the solution you'd like
„Smart Edit” tool window should be opened by default.

[Bug] Avalonia missing features

Things that are present in WPF version, but are missing from Avalonia version:

  • Add text edit mouse pointer to custom textbox in parameters view
  • "Add condition/action/event" has slightly off styles
  • No support for creating folders with user name
  • "Choose event/action/target" window is slightly different to WPF version
  • Clicking on SAI parameters doesn't open editing window
  • Light Windows theme needs a little bit more love to match WPF version
  • Missing icons in statusbar
  • Invalid initial focus in "edit action/event" window
  • Windows Avalonia version is missing exe icon
  • No drag and drop in solution explorer
  • No support for docking windows
  • Windows version opens terminal [this is dotnet bug when building from linux]

Things that are present in Avalonia version, but are missing from WPF version:

  • No toolbar in WPF version

[Feature] Add default Trinity database config

Is your feature request related to a problem? Please describe.
Default database config is empty now. However, majority of the users use databases with default trinity config (localhost, 3306, trinity, trinity, world).

Describe the solution you'd like
Default trinity database config, should be default config in the WDE

[Feature] Grouping of items in new item window.

Is your feature request related to a problem? Please describe.
With each new items list of possible to create items in new item window become less readable.

Describe the solution you'd like
New item window should grouping feature to make it easy to use.

Dock.layout file corruption leads to crash

Describe the bug
When user try to run app with turned off mysql service, in some magic way file dock.layout gets corrupted. File is responsible for saving position of docked UI elements and its loader doesn't check for problems which in the end leads to crash.

Version (commit hash)
4771256

To Reproduce
Steps to reproduce the behavior:

  1. Open app with turned of mysql server service
  2. Close popup with info about failed db connection
  3. Close app
  4. Open app again
  5. App crashes

prebuild pls

Hi,
i can´t get it to work. I do NuGet restore but it doesn´t built. I dont know why. Pls make a prebuilt, only to test a little.

thanks!
Greetings Ironhead

[Feature] Generic conditions editor

Summary

Conditions are already supported in smart scripts, but there should be a generic conditions editor, where you can manually select condition source.

TC 3.3.5 / 4.3.4 Support

Hey!

Thanks for this amazing app, i would like to ask, i saw on the Reddit page that you are working on older version compatibility, it was 8 months ago, did you managed to do some work with that?
I would like to use the app with 3.3.5 or 4.3.4 TrinityCore.

Thanks!

Implement Database Port

Hi. Would be nice to implement database port. I tried with 127.0.0.1:3308 but it wouldnt connect.

Thank you!

[Feature] Creature template editor

Summary

Creature template editor shouldn’t be part of generic editors, because the table is too big to be comfortably edited like a database.

In case of this table, it is more convenient to edit table in columns, instead of in rows:

Zrzut ekranu 2021-01-27 o 17 10 43

Also, in case of this table, the generated SQL should be a diff between original and modified creature_template, contrary to editing generic tables which can generate delete and insert rows.

[Feature] SAI Summon creature summon type dropdown

Is your feature request related to a problem? Please describe.

Right now, you have to know what summon types the core offers and if these summon types accept additional parameters like despawn time.

Describe the solution you'd like

Can we have a little love here? For example a dropdown menu that offers available summon types.

Additional context

image

image

Timed Events not available

Follow Actions not available:

SMART_ACTION_CREATE_TIMED_EVENT
SMART_ACTION_REMOVE_TIMED_EVENT
SMART_ACTION_CALL_TIMED_ACTIONLIST
timed_list01
timed_list02

Action Invoker source/target doesn’t work with `wait` meta action

Describe the bug
ActionInvoker is null after wait action.

Version (commit hash)
d2ad04b

To Reproduce
Steps to reproduce the behaviour:

  1. Create a script
  2. Create any event which has „invoker”
  3. Add action wait
  4. Add any action with invoker source
  5. Test in game - doesn’t work, because invoker is null there

Expected behaviour
Action Invoker should work as expected after wait action.

Proposed solution
Best option would be to change TC to pass invoker here https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/AI/SmartScripts/SmartScript.cpp#L1542

Another option would be to change invoker to storedTarget in the editor, but there is a risk, this storedTargetID will be taken already. We can inform user during exporting that some storedTarget will be reserved?

[Enhancement] update-process visibility

Issue for keeping track of things

Is your feature request related to a problem? Please describe.

Right now, the option to show that an update is available is hard to notice and might be overseen by most users.

Describe the solution you'd like

Something to make the update process more readable to users.
image

Additional context

Right now, after clicking "check for updates" an available update is shown like this (downloaded an older version for showcase):
image

[Feature] Finish quest chain editor

Summary

Quest Chain Editor should be a new module that allows user to easily manipulate quest chains in form of graph, without touching SQL at all.

A lot of work has been done already on drawing graphs and producing SQL in the project https://github.com/BAndysc/WoWDatabaseEditor/tree/master/WDE.QuestChainEditor and https://github.com/BAndysc/WoWDatabaseEditor/tree/master/QuestChainTest

There are however still some things missing before it is usable and production ready, mainly:

  • ensuring the chains are properly loaded from DB
  • ensuring that chains are properly serialized to SQL
  • ensuring that loading quest X will load ALL connected quests
  • adding undo/redo ability

Nice to have:

  • copy/paste/cut option
  • multiselect

Smart Action Missing: 46

Describe the bug
Smart Action is missing. 46

Version (commit hash)
Build 607

To Reproduce
Steps to reproduce the behavior:

  1. Add to DB to a NPC:
    INSERT INTO smart_scripts (entryorguid, source_type, id, link, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, target_type, target_param1, target_param2, target_param3, target_param4, target_x, target_y, target_z, target_o, comment) VALUES (50000, 0, 3, 0, 9, 0, 100, 0, 0, 6, 2000, 3000, 0, 46, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Run away!');

  2. Open in editor the NPC

  3. See screenshot

Expected behavior
I expect the tool to know about and be able to use this smart action. The action is used for special movement.

Screenshots
WoWDatabaseEditorCore Avalonia 051121 012910 3104x1527

Exception thrown at branch "sai_display_rework"

Unity.Exceptions.ResolutionFailedException
  HResult=0x80131500
  Nachricht = Resolution of the dependency failed, type = 'WDE.Common.Database.IDatabaseProvider', name = '(none)'.
Exception occurred while: while resolving.
Exception is: InvalidOperationException - The current type, WDE.Common.Database.IDatabaseProvider, is an interface and cannot be constructed. Are you missing a type mapping?
-----------------------------------------------
At the time of the exception, the container was: 
  Resolving WDE.Common.Database.IDatabaseProvider,(none)

  Quelle = Unity.Container
  Stapelüberwachung:
   bei Unity.UnityContainer.ThrowingBuildUp(IBuilderContext context)
   bei Unity.UnityContainer.Resolve(Type typeToBuild, String nameToBuild, ResolverOverride[] resolverOverrides)
   bei Unity.UnityContainerExtensions.Resolve(IUnityContainer container, Type t, ResolverOverride[] overrides)
   bei Prism.Unity.Ioc.UnityContainerExtension.Resolve(Type type)
   bei Prism.Ioc.IContainerProviderExtensions.Resolve[T](IContainerProvider provider)
   bei WDE.Parameters.ParametersModule.OnInitialized(IContainerProvider containerProvider) in F:\434\WoWDatabaseEditor\WDE.Parameters\ParametersModule.cs: Zeile30
   bei Prism.Modularity.ModuleInitializer.Initialize(ModuleInfo moduleInfo)

  Diese Ausnahme wurde ursprünglich bei dieser Aufrufliste ausgelöst:
	Unity.ObjectBuilder.BuildPlan.DynamicMethod.Creation.DynamicMethodConstructorStrategy.ThrowForAttemptingToConstructInterface(Unity.Builder.IBuilderContext)
	Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicBuildPlanGenerationContext.GetBuildMethod.AnonymousMethod__0(Unity.Builder.IBuilderContext)
	Unity.ObjectBuilder.BuildPlan.DynamicMethod.DynamicMethodBuildPlan.BuildUp(Unity.Builder.IBuilderContext)
	Unity.Strategies.BuildPlanStrategy.PreBuildUp(Unity.Builder.IBuilderContext)
	Unity.UnityContainer.ThrowingBuildUp(Unity.Builder.IBuilderContext)

Innere Ausnahme 1:
InvalidOperationException: The current type, WDE.Common.Database.IDatabaseProvider, is an interface and cannot be constructed. Are you missing a type mapping?

68d4dfa is the causing commit

reverted it in #4 but i'm totaly new into this, so i'm not sure if that's the real solution

[Feature] Contextual parameters

Implement new Parameter type that contains context - this way we can implement parameters that changes their values depending on the context. For instance

GossipMenuParameter that changes the values depending on the creature. Or QuestStarterParameter.

[Feature] „Go to current document” in solution explorer

Is your feature request related to a problem? Please describe.
If you have a lot of documents opened, it is annoying to manually find the item in the solution explorer list.

Describe the solution you'd like
There should be a button „go to current document” in solution explorer.

Additional context
Bonus points if it possible to add the button in the „solution explorer” title bar (not sure how hard it would be).

[Feature] SAI time explanation/hints

Is your feature request related to a problem? Please describe.

SAI Timers are in milliseconds.
WoWDE converts timers automatically into seconds and blends out previous user input and shows converted times.

Describe the solution you'd like

The user gets no information about this at first hand. Maybe a info box with an explanation that timers are milliseconds and gets converted for readability afterwards would be nice.

Additional context

image

[Feature] Remove multiple from Solution explorer

Is your feature request related to a problem? Please describe.
I have opened plenty SAI scripts to view them, but when i want to close them from explorer i have to select every single one and close them.

Describe the solution you'd like
Make multiple scripts selectable with Shift or CTRL and then add option to close them all.
Maybe even make "DEL" key useful here

Additional context

[Feature] Generic editors for most typical tables

Summary

Some tables in database require special editors (like Smart Script editor is not just a database view, instead it creates abstraction layer), however a lot of other tables do NOT require special editor and can have just a generic one. For instance spell_area or vehicle_template_accessory editors can have the same generic editor, which would be just a database view.

The tables should be defined in some external file, preferably json with tables definitions, the module would read the definition and add appropriate editors to the project

[Feature] Detecting if DBC path is valid

Is your feature request related to a problem? Please describe.
Currently user can put any path in DBC textbox and WDE will silently fail if the path do not contain valid DBC.

Describe the solution you'd like
Before saving, it should try to detect if path contains valid dbc. Checking for required files (without looking into the content) is enough.

[Feature] Auto updater

Summary

An auto-updater would be really helpful for users. It would be best if it integrated with AppVeyor, that is, it would download new versions from AppVeyor.

To do that, somehow AppVeyor has to auto increate version of the build.

It would be the best if the updater worked for any branch (so that people who downloaded master binary, would get updates from master, people who downloaded beta binary, would get updates from beta branch).

It would be the best if the new version was downloaded as background task (ITaskRunner)

[Feature] Store user settings in user folder

Currently settings are stored in application folder, so each time user download a new version, one have to be update the settings again.

They should be stored in user folder.

Font & Color

Is your feature request related to a problem? Please describe.
Dark blue in dark mode is difficult to read/edit in SQL output.

Describe the solution you'd like
Just being able to change one or two colors here to user defined colors would be great. Also ability to configure the font type and size here independently of the rest of the UI would be beneficial.

Add context menu to smart script editing view

Is your feature request related to a problem? Please describe.
Smart Scripting editing view is missing contextual menus

Describe the solution you'd like
Context menu with most typical actions (copy, paste, cut, delete, edit) should be added to smart scripts view

[Bug/Feature] Template Editor (Creature) AI Name / Script Name

Is your feature request related to a problem? Please describe.
If i want to assign a Script Name to a Creature/Gameobject, i have to remove AI Name (if exist). The Editor doesn't support that right now. Eventually having a creature with AI and Script shouldn't happen.

Describe the solution you'd like
Inserting a Script name should let me remove AI name or do it automatically.

Additional context
image

image

[Feature] SAI - Show %-chances on Script overview

Is your feature request related to a problem? Please describe.
Currently no way to see %-Event chances beside opening each one and face-check them.

Describe the solution you'd like
Show % in the overview screen.

Additional context
image

[Bug/Feature] Template editor Value display / copy paste

Is your feature request related to a problem? Please describe.
Some fields require and show numbers separated with a dot:
image

Clicking in one of these fields e.g. for copy pasting, numbers given are separated by comma:
image

Pasting them is impossible due to above described situation.

Describe the solution you'd like
Would be nice to get the correct value by clicking into and taking out of the field for not having to manually write stuff down.
Or to have the editor automatically convert wrong inputs (comma to dot) in these cases.

Database problem.

When i connect Editor to my database always when im trying to open script program immediately closing without any crash.

[BUG] Search function

Describe the bug
While we can search for either Entry or Name in Scripts, we cant search for key (should be entry too!) in templates or other stuff:

Creature Script
image
image

Creature Template:
image
image

Version (commit hash)
Build 607
004fde7

Expected behavior
Search function working the same in all areas.

[Feature] Add a possibility to load document temporarily, without adding it into the solution explorer

Is your feature request related to a problem? Please describe.
Now the only way to open existing script, is to add it to the solution explorer. It is annoying if you just want to take a look at the script.

Describe the solution you'd like
Beside File -> New, there should be also a feature to load solution item without adding to the solution.

Additional context
Bonus points if the tab header of such document is displayed a bit differently (i.e. written in italic)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.