royawesome / worldsmith Goto Github PK
View Code? Open in Web Editor NEWOpen source Dota 2 Mod Editor
License: MIT License
Open source Dota 2 Mod Editor
License: MIT License
It should probably have the Worldsmith icon.
Right now it's just a folder select. This should be more intuitive. List the addons probably.
When a document is modified, all editors should have a * in the tab to indicate that that object or document has been modified and should be saved.
Ever since we moved to the docking panels, the custom editors for flags and ability action collections broke and don't pop up.
If you remove a project that was loaded when you exited WorldSmith and then start WorldSmith it will error out on the function ProjectView.RecursivePopulateFromProject with DirectoryNotFoundException.
We need to handle removed/renamed directories when starting WorldSmith,
After 616ed7a , the AbilityActionCollection does not parse. It needs to be turned into a Thin Wrapper around the Actions subkey and should return stuff out of it.
If an editor is requested (double clicking on an object) and it is already open, it should just bring that editor to focus, not create a new one.
Figure out what the sounds are, and use them for automatic suggestions in places where sounds are required.
Having to resize WS every time I open it is super annoying. Form size, position, and basic layout should be rememberd and stored for next time it opens. This includes window dock positions as well.
If a document is modified by one editor, the changes need to be propagated to all open editors for that document.
For example, if you modify a property of a unit in the property editor, the text editor for that unit should be updated with the change.
Themes are cute, but there should be an overall dialog for all Worldsmith settings and a simple way to add new saveable settings.
The Dota Object Editor doesn't have buttons for creating new objects.
We do not have a good icon for this. It should be something related to files/folders but also dota related.
If someone is feeling clever, doing a 16x16 dota logo with a folder in the middle (instead of the division sign) might be funny/clever/good.
Iterating through every file in the VPK takes a significant amount of time. We should either look into reducing this time or running the iteration/placing of tree nodes in a BackgroundWorker and not block the UI.
We need a wiki page on basic usage and how to use Worldsmith. Should cover Addon Creation/Loading, basic Unit creation, and an overview of the different panels.
It currently just opens a text editor. It shouldn't do this. Go through the document system so we can track open/closed documents.
Particle helper that auto-suggests valid particles in places where they're required, checks to make sure any particles that you use are defined, and helps you copy particles from regular Dota to your addon directory.
Currently it just shows a loading bar and some text.
It should have a header image, some text describing the Worldsmith project, linking to the project page and displaying credits.
It could play a little bit of dota music when starting up (akin to how the Warcraft 3 editor played music when starting up), but that is purely optional.
It should create it at:
[DotaPath]\dota_ugc\game\dota_addons[AddonName]
[DotaPath]\dota_ugc\content\dota_addons[AddonName]
I couldnt find an issue related to this.
They should enable/disable the non-document panels, like Object View or Project View. They should be disabled when a project is not open.
Worldsmith can only open one VPK at a time. Dota has multiple VPKs that it draws from and worldsmith should be able to open and index all of them
A syntax highligher for Key-Values should be written
Currently, if no addon is loaded, all you see is the Console window. There should be some kind of notification that you need to create a new addon or open one to begin.
A solution would be to nuke the two forms before creating again, or to reset the Document rather than a new form
![Alt Text](http://i.imgur.com/bkFNTPr.png Preview)
Translate the data class name into a human readable name using the addon's Addon_English.txt (or whatever language is loaded).
A wiki page should be written describing how DotaObjectSchema classes are generated. It should explain the Key-Value fields, what they do, and how to generate the classes.
A Console Panel should display console output of the program as well as take input for when we integrate a Lua VM into Worldsmith
Integrating Lua tools with knowledge about the other components is a big step. This is a meta-issue, assign other issues as dependencies for this one for individual components to get Lua integration.
When adding a RunScript Action, we would normally want to quickly define the ScriptFile and Function and jump directly into the ScriptFile path, create a function and start coding it.
What could be added is:
There are many cases in which developers will want to have calls from their map logic to various scripting functions. It would be helpful if WorldSmith would present a list of these to the user while coding relevant Lua code, so that it requires less back-and-forth checking.
This is kinda a big one. Integrate a bunch of parsers and a LuaVM, and have buttons to trigger events. Should handle the same way that Dota would (but without the same interface, and without automatically stepping forward in timesteps). Any system not simulated would have to be handled manually by the user.
This is a relatively minor bug, but should get fixed for presentation reasons.
Many documents in a dota addon can be opened in different contexts.
Most .txt files can be opened as either a Plain Old Text file or as a Key-Value file (parse the KVs, display them in a grid view). Something should be created to allow editing in both contexts, then saving one editor saves the file and reloads both editors with the new data.
Certain files (npc_units_custom.txt, npc_items_custom.txt, and so on) should be opened with their own special editor for modifying properties. They are one big file to hold a ton of data objects, and it would be better to have them in their own tree view.
Ideally, we should disallow directly editing those special files, and instead route them into modifying each data object individually, then compile all of those objects into one big file when the project is saved. This would prevent having a potentially infinite number of editors trying to save and reparse these special files, and force users into the workflow of creating individual units/objects and editing them.
This is mostly @b2zeldafreak
These two items should be the first and most obvious option for those categories.
Right clicking on the object menu should give some context menu options.
It's pretty fugly. That control could be improved to be less ugly.
This is probably a big project. There might be some 3rd party property editor controls that we could leverage for this
Some features that would be nice:
Document tabs should have a context menu with a few options.
Should be able to create folders in the Object browser and move elements into them.
To store the folder structure, perhaps we should put a key in the Unit file for "wsFolder". Dota should ignore keys it has no idea about.
@Penguinwizzard mentioned doing this. Investigate it's viability and how much it would take to break them apart.
Digital Rune's docking library is no longer maintained. Do we want to live with any issues that come up (like not being able to design custom themes) or do we want to explore other options?
Here is a library that we could use: https://github.com/dockpanelsuite/dockpanelsuite
A wiki page should be written that explains how the project is laid out and where to look for things.
Similarly to VS, have a few options for new projects. For example, one could be barebones; another could be 'vanilla dota', which just has vanilla dota set up, for the addons that are slight gameplay modifications.
Set of libraries for auto-download through a package manager. Stuff like BMD's physics and timer, and statscollection.
KVLib properly serializes the full KV tree, but certain keys should be excluded if they are default. This code is mostly working, it just needs to be tested and corrected.
For fields that need asset references (Model, sounds, icons), we need a dialog to select the asset in the project.
The data schema must be annotated with what asset type is required in that field.
Assets must be discovered and registered inside the Addon as well as the VPK.
A dialog must be created to list the assets of the proper type and select them.
A Lua syntax highligher should be written for the text editor
Ohgod its so bad
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.