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 EclipseHow 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 onlyBrush: Validates a referenced brush entry exists for the value enteredConditional Validation: Allows conditional structures to follow based on a field valueKey word: Validates all entity file key words are spelled correctlyQuotes: Validates any values requiring qoutes have beginning and ending quotation marksInteger: Validates integer entries contain digitsDecimal: Validates decimal entries contain ####.#####Entity References: Validates a referenced entity file exists for the value enteredString Reference: Validates a referenced String entry exists for the value enteredSound Reference: Validates a referenced Sound entry exists for the value enteredEnumeration Validation: Validates an entry confirms to an allowed set of values (i.e. buffInstantActionType)Iteration Validation: Validates repeating elements are correctStructure 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 enteredTexture Validation: Validates a referenced texture exists for the value enteredParticle Validation: Validates a referenced effect exists for the value enteredSounddata Validation: Validates sounddata files for correctness including referenced sound filesGalaxyScenarioDef Validation: Validates galaxyScenarioDef files for correctness with 2 pass validationsStringInfo Validation: Validates English.str for correctnessBrushes Validation: Validates brushes files for correctnessGameplay.constants: Validates the Gameplay.constant file for correctnessExplosiondata Validation: Validates sounddata files for correctness including referenced sound filesGalaxy 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 completionsSyntax 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 structureQuick link to wiki syntax
Excellent, that helps a lot
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.
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
Updated for version 0.5 (Downloads)
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.
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
I wish I new more about programing, I don't really understand all that syntax stuff.
Now that would be very helpful.
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 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 defaultAutoAttackRange: Enumeration defaultAutoAttackOn: Boolean prefersToFocusFire: Boolean usesFighterAttack: Boolean autoJoinFleetDefault: Boolean canBomb: Boolean hasBombingLevels: Condition?(FALSE) hasBombingLevels? baseDamage: Decimal basePopulationKilled: Decimal hasBombingLevels: Condition?(TRUE) hasBombingLevels? baseDamage? Level:0: Decimal Level:1: Decimal Level:2: Decimal basePopulationKilled? Level:0: Decimal Level:1: Decimal Level:2: Decimal bombingFreqTime: Decimal baseRange: Decimal bombTransitTime: Decimal bombEffectCount: Integer bombEffectAngleVariance: Decimal bombEffectsDef? weaponType?: Enumeration burstCount: Integer burstDelay: Decimal muzzleEffectName: Particle? muzzleSoundMinRespawnTime: Decimal muzzleSounds? soundCount: Iteration? sound: Sound? hitEffectName: Particle? hitHullEffectSounds? soundCount: Iteration? sound: Sound? hitShieldsEffectSounds? soundCount: Iteration? sound: Sound? beamEffectSounds? soundCount: Iteration? sound: Sound? projectileTravelEffectName: Particle? beamGlowTextureName: Texture? beamCoreTextureName: Texture? beamWidth: Decimal beamGlowColor: Unknown? beamCoreColor: Unknown? beamTilingRate: Decimal missileTravelEffectName: Particle? missileStartTurningDistance: Decimal missileSlowTurnRate: Decimal missileMaxSlowTurnTime: Decimal typeCount: Iteration? frigateRoleType: Enumeration statCountType: Enumeration mainViewIcon: Brush? picture: Brush? NameStringID: StringInfo? DescriptionStringID: StringInfo? counterDescriptionStringID: StringInfo?
Frigate
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.
Well, the objects;
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.
Ok!, I think I'm starting to understand how things are tied together.
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
Hey, thanks for sharing the file structures with us, it will be quite helpful for me.
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.
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.
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.
Oh! cool thanks, I thought I might not be using it properly. Thanks for your help again.
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
8/23/2010 v.0.7
Configuring Syntax Coloring:
Syntax Coloring in action:
Content Assitance in action:
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
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
I'm bumping this because 1. This is an awesome tool and 2. because I think I found a bug
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.
@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.
There are many great features available to you once you register, including:
Sign in or Create Account