ZombiesRus5 ZombiesRus5

[Mod Utility] Entity Editor and Validation Tool (Fan made, Supports Rebellion)

[Mod Utility] Entity Editor and Validation Tool (Fan made, Supports Rebellion)

http://code.google.com/p/soaseplugin/

I have a set of eclipse and ant based tools for modding with Sins that others may find useful when validating or building their projects.

Current Downloads (older downloads: Downloads

FAQ

System Requirements 

Syntax Wiki - A syntaxual representation of almost all of the Sins editable files.

 

How To's:
How To Install Eclipse

How To Setup Entity Validation Eclipse Plugin (Updated for new preference with v0.6)

Video: How to setup and configure the Soase Eclipse Plugin


References:

Mod Development with Eclipse (Forum link providing a general overview of Eclipse)

Eclipse download site (http://eclipse.org/downloads)

 


Tools Supported:

Entity Editor (Click me for cool stuff about visual Entity Validations)

Eclipse Editor builder/nature extension that provides visual feedback to the following validations.

Entity Definition View - Displays the syntax rules for the currently opened entity file.

 

Summary of validations currently supported:

Boolean: Validates boolean entries contain TRUE or FALSE only
Brush: Validates a referenced brush entry exists for the value entered
Conditional Validation: Allows conditional structures to follow based on a field value
Key word: Validates all entity file key words are spelled correctly
Quotes: Validates any values requiring qoutes have beginning and ending quotation marks
Integer: Validates integer entries contain digits
Decimal: Validates decimal entries contain ####.#####
Entity References: Validates a referenced entity file exists for the value entered
String Reference: Validates a referenced String entry exists for the value entered
Sound Reference: Validates a referenced Sound entry exists for the value entered
Enumeration Validation: Validates an entry confirms to an allowed set of values (i.e. buffInstantActionType)
Iteration Validation: Validates repeating elements are correct
Structure Validation: Validates entries appear in the correct order in the entity file (configurable to allow unordered structures)
Explosion Validation: Validates a referenced explosion entry exists for the value entered
Texture Validation: Validates a referenced texture exists for the value entered
Particle Validation: Validates a referenced effect exists for the value entered
Sounddata Validation: Validates sounddata files for correctness including referenced sound files
GalaxyScenarioDef Validation: Validates galaxyScenarioDef files for correctness with 2 pass validations
StringInfo Validation: Validates English.str for correctness
Brushes Validation: Validates brushes files for correctness
Gameplay.constants: Validates the Gameplay.constant file for correctness
Explosiondata Validation: Validates sounddata files for correctness including referenced sound files
Galaxy Validation: Validates galaxy files for correctness and performs additional validations on referenced templates and design names.

Content Assistance: [ctrl]+[space bar] on keywords or constants and get suggested completions
Syntax Coloring: change syntax coloring of entity files to suit your preferences (defaults to all black currently)
Hover Help: hover over a keyword and get additional details about the value or structure
Quick link to wiki syntax

1,202,987 views 278 replies | Pinned
Reply #76 Top

Excellent, that helps a lot:thumbsup:

One thing about your tool, it doesn't seem to catch quite everything. Specifically the GalaxyScenarioDef file. Maybe it's by design, but your tool doesn't show any errors and/or warnings pertaining to it. When I run my mod with the dev.exe, though, I get tons. I know how to fix them, but it might be something for you to consider for the next version. I'll upload my mod soon so I can show you better what I mean.

Reply #77 Top

You are correct. I haven't built any meta-definitions for the GalaxyScenarioDef file. I will have to look at that and see if it fits in the tool.

Thanks

Reply #78 Top

Updated for version 0.5 (Downloads)

  • Added custom perspective for Sins of a Solar Empire.
  • Added custom icon for Sins of a Solar Empire files.
  • Added text editor extensions to automatically map str, entity, constants and galaxyScenarioDef to open in the Eclipse Text Editor.
  • Added support for placing mod files in sub-directories in the Eclipse project.
    • For example path?/mod/GameInfo?, path?/mod/String, etc.
Reply #79 Top

Oooh, new version, excellent!

Reply #80 Top

Quoting kyogre12, reply 79
Oooh, new version, excellent!

Yep, nothing too major and should be backwards compatible, let me know if there are any issues. I'm working on the definitions for some of the other files like the galaxyScenarioDef.

Reply #81 Top

Wiki Update.

I have added several wiki pages that detail the syntax for the supported entity files.

http://code.google.com/p/soaseplugin/wiki/Syntax (Or see link above labeled Syntax).

The wiki pages are dynamically generated from my entity definitions. You can dive into these and see what are the supported fields values, etc. As they are dynamically generated from the source definitions I will be updating these pages as additional help content is added. If anyone has any suggestions to the layout or would like to supply help text please let me know.

You can also get a tree based view similar to this in Eclipse if you install and use the Eclipse Plugin.

Part of the purpose in adding these besides being good assets is to lay the ground work for content assistance and hover help while editing entities.

Thanks, ZombiesRus5

Reply #82 Top

I wish I new more about programing, I don't really understand all that syntax stuff.

hover help while editing entities.

Now that would be very helpful. :D

 Edit; 1 thing that may or may not need to be added, as you know my understanding of this is pretty basic, could be missiles and torpedoes to the objects. I am not sure I understand this correctly, are all the objects basically the mesh's in game?

Reply #83 Top

I wish I new more about programing, I don't really understand all that syntax stuff.

I understand. The wiki syntax pages are mainly to show what structural elements are allowed in entity files and what the allowed values are.

For example, Looking at the Frigate entity syntax you can see the elements and the types of values they accept: Enumeration(Constants), Boolean, Decimal, Integer, Particle, Mesh, Entity, Sound, etc. Fields with a type of Enumeration can be drilled down into to see what the possible constants are such as defaultAutoAttackRange.

The syntax rules also allow for conditional fields such as hasBombingLevels which expects different sub-fields depending on the value of TRUE/FALSE.

The Iteration type is used to denote a field that has repeating sub-fields.

I think once you get used to the syntactical representation of the entities you can find this quite useful.

Frigate Definition Syntax Example

Frigate


Reply #84 Top

Edit; 1 thing that may or may not need to be added, as you know my understanding of this is pretty basic, could be missiles and torpedoes to the objects. I am not sure I understand this correctly, are all the objects basically the mesh's in game?

I'm always open to add new functionality. Maybe you could describe this a little further as I'm not sure I'm fully following you here.

Reply #85 Top

Well, the objects;

Values

  • Star
  • Planet
  • Frigate
  • CapitalShip
  • Fighter
  • PlanetModule
  • StarBase
  • SpaceMine
  • PlaceHolderPlanetModule
  • PlaceHolderSpaceMine                                                                                                                                  are all mesh's within the game. I was wondering, seems as missiles, torpedoes, cannon shells & perhaps some of the other weapon effects used mesh's also, should they be included as objects also? Or are they not included because they can't be targeted?
Reply #86 Top

are all mesh's within the game. I was wondering, seems as missiles, torpedoes, cannon shells & perhaps some of the other weapon effects used mesh's also, should they be included as objects also? Or are they not included because they can't be targeted?

Ah, thanks for the explanation. You last statement is correct, the only constant values allowed for the field 'object' referenced in targetFilter are what you have listed above.

http://code.google.com/p/soaseplugin/wiki/targetFilter

http://code.google.com/p/soaseplugin/wiki/object

I have the ability to add helpText to the xml definitions which will make their way into the wiki and hover help. Hopefully, I can add more examples and explanations to help new modders.

Reply #87 Top

Ok!, I think I'm starting to understand how things are tied together.

Reply #88 Top

Version announcement: v0.6

Lots of goodies added with the latest version. Make sure to check out the project home page details on the new preference.

7/32/2010 v.0.6

  1. Added new grammar validation rules
    1. Any - Just validates there is a value
    2. SoundFile? - Validates the referenced file and extension exists
    3. Color - Validates the color is a RGBA value
    4. Position - Validates the position matches [ #, #, ... ]
  2. Added brushes.xml - validates all *.brushes files
  3. common.xml changes
    1. Added condition canAlwaysFire for fireConstraintType
    2. Added missing force element_rule
  4. Added constants.xml - validates Gameplay.constants
  5. Added help support to grammar definitions
  6. Added missing FALSE condition for hasWeaponLevels in frigate.xml
  7. Added galaxy_scenario_def.xml - validates *.galaxyScenarioDef files
  8. Added missing validation rules to pip_cloud.xml
  9. Added missing validation rules to quest.xml
  10. Added sound_data.xml - validates *.sounddata files
  11. Added string_info.xml - validates *.str files
  12. Build/Nature
    1. Added support for files other than *.entity
    2. Added new preference for sins installation directory
      1. Allows for binary file references to be located such as *.ogg
  13. Entity Definition View
    1. Added support for files other than *.entity
  14. Entity Parser
    1. Fixes issue when tabs are used instead of spaces between keyword and value
    2. Adds validation support for Any, SoundFile?, Color and Position
    3. Fixes issue where an error was not reported at the end of the file
    4. Adds references to field definition handler - used for wiki generation
  15. WikiDefinitionBuilder?
    1. Adds new functionality to generate dynamic wiki pages based on definition xmls
Reply #89 Top

Hey, thanks for sharing the file structures with us, it will be quite helpful for me.

Reply #90 Top

Version 0.7 will be coming soon.

I'm currently testing the first iteration of content assistance (key words, entity references, sound references, etc) and syntax coloring. So far it's looking pretty good. I may have some time to add hover help before the release but won't worry to much if it's not there in time.

There will also be a quite a few updates to the syntax rules that will make validations a little more accurate (more still to come as I learn more). For example, if you trace from Buff to finishConditionType you'll see it is now defined as a conditional field. Conditions allow me to limit what fields are allowed to follow based on the value set.

Reply #91 Top

Hi ZombiesRus5, just wondering, this might be me not using Eclipse properly, but when adding extra files to a project folder the additional files don't show up. I tried "Add/remove validation" & "Clean" but that doesn't make them show either. The way I have been doing it is to finish the project, delete it, then copy the mod with additional files to the workspace and start a new project with that. Its not really that big of an issue, but I was wondering if there was a way to add extra files straight into the current project. To just help work-flow a bit. I have been using a newer version of Eclipse, would that have anything to do with it.

Reply #92 Top

Files added outside of eclipse, possibly through windows explorer may not directly show in your eclipse project. If you right click on the project there is a "Refresh" option. This will pull in any files added outside of using the eclipse project explorer.

I use this a lot in my job too as dynamically generated files don't show unless I hit refresh like this.

It is also possible to directly paste files into a project but I still have to perform the refresh step occasionaly to catch changes I made through windows explorer or notepad, etc.

+1 Loading…
Reply #93 Top

Oh! cool thanks, I thought I might not be using it properly. Thanks for your help again.

Reply #94 Top

Version announcement: v0.7.1

It looks like there were a couple of people that downloaded v.0.7 while I was testing it to make sure everything installed ok. Unfortunately v.0.7 did not have the icons packaged. I updated the build to include icons with v.0.7.1. (Sorry for those who downloaded during this time).

Now for the goodies (I'm pretty proud of this release). This is a fairly expansive version including Syntax Coloring, Content Assitance, Hover Help and a couple other useful features. I've done a lot of testing, but please let me know if you run into any issues.

8/23/2010 v.0.7.1

  1. Fixes issue with v.0.7 build not including icons.

8/23/2010 v.0.7

  1. Enity Editor Enhancements
    1. Adds Syntax Coloring Support
    2. Adds Hover Help Support
    3. Adds Content Assistant
      • Enumerations/Constants
      • Sound References
      • Entity References
      • Explosions
      • Particle Effects
    4. Adds popup menu with F3 shortcut to open referenced entity files
    5. Adds new icons
  2. Adds new preference options
    1. Version support
    2. Editor Tab Width
    3. Show Hover Help Flag
    4. Syntax Coloring
  3. Entity Builder
    1. Adds additional progress information
  4. Entity Parser/Validator
    1. Addds support for Vanilla/Entrenchment/Diplomacy validations
    2. Fixes some issues with validation
    3. Enhanced validation for many conditional type fields
      1. finishConditionType
      2. buffInstantActionType
      3. etc
  5. Quick Access Wiki Syntax (SOASE Menu)
Reply #95 Top

Configuring Syntax Coloring:

Syntax Coloring in action:

Reply #96 Top

Content Assitance in action:

Reply #97 Top

BugFix Announcement:

I found a couple of issues doing some more testing with the entity validation tool. The first 3 are all pretty much related to the same issue around content assistance and making sure only the end portion of the word is completed. The 4th issue occurred due to trying to optimize the validator and when it is reconstructed. It should now rebuild correctly when Project/Clean... is performed.

8/24/2010 v.0.7.2

  1. BugFix: Fixes issue with content assistance not correctly completing unfinished portion of keyword.
  2. BugFix: Fixes issue with content assistance not correctly completing unfinished values
  3. BugFix: Fixes issue with content assistance not recognizing _ (underscores) in ID values
  4. BugFix: Fixes issue with Project/Clean... not completing.

Thanks, ZombiesRus5

Reply #98 Top

New features:

After working with TrooperScooper7's mod I found the requiredShip tag in spawnShips needs minCount and maxCount so I updated version 0.7.3 to support this.

Also, I added a new feature to report when the Research Tier level does not match the Research Block.

8/24/2010 v.0.7.3

  1. Enhancement: Adds tier validation support for ResearchSubject entity files
  2. Defect: Fixes issue with requiredShip rule not correctly validating minCount and maxCount.
Reply #99 Top

I'm bumping this because 1. This is an awesome tool:thumbsup: and 2. because I think I found a bug:P

The tier validation for ResearchSubjects doesn't work with the Artifacts. They don't follow the normal conventions for the rest of the ResearchSubjects where a position of [1 , 1] corrosponds to a tier of 1, pos [ 2 , 1] corrosponds to tier 2, etc. Instead, for the artifacts [1 , 1] is tier 0, [2 , 1] is tier 1 and so on. As a result, the tool says there are errors with all of the ResearchSubject_Artifacts.

+1 Loading…
Reply #100 Top

@kyogre12 Thanks for the great feedback both here and in PM.

I'm working on a new build and have most of it tested out. I will hopefully have version v.0.7.4 posted in the next day or two. This release will exclude Artifacts from the tier level validation as well as adding some new validations I'll list with the release post.