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
There's this one: https://forums.sinsofasolarempire.com/322559/
I use it in conjunction with Harpo's tools. Harpo's for the big jobs, Dekhranic's for the single file conversions.
I'm tracking an issue that has been reported and will hopefully come up with a resolution soon.
Issue Synopsis.
The Editor fails to open when attempting to open an external entity file not managed through an Eclipse project. This method involves using the menu File->Open File... option.
Work Around.
The easiest way to work around this issue is to create an Eclipse project to edit or view files. This can be done by creating a project using the external mod folder as the project root location or as a separate project folder outside of the mod directory.
I had not personally run into this issue as the idea of the tool is to validate a mod project as a whole which requires the mod files to be in a managed Eclipse project. Again this project can be externally linked to the mod folder if you choose or a separate project folder.
I am troubleshooting the issue currently and will hopefully have a resolution and fix posted soon.
Sorry for blowing the whistle on this issue with my noobish ways. I just wanted to look at reference data to compare and rip them off. Reverse engineering is working for me much better than writing all the files from scratch.
Haha, hardly what I would categorize as a whistle blowing situation.
You just didn't use the tool the way I had envisioned or recommended. The idea of an IDE (integrated development environment) is that a majority of the tasks that need to be performed are managed through projects in the tool.
This is why I recommend setting up the reference files as three distinct eclipse projects in addition to you mod project(s).
Now that said, I don't think it's reasonable that File->Open File... fails for a non-managed entity. The problem lies in the fact that it's trying to validate the file and fails trying to look up project information necessary to validate said file.
I actually appreciate that you detailed exactly what happened and what the error was. I believe it may be why other individuals have had issues.
Version 0.8.3 fixes the above issue. Thanks to ransomthetoaster for finding and pointing this particular one out.
3/18/2011 v.0.8.3
Note: The files opened that are not part of an eclipse project will NOT have validation or syntax coloring!
Hey, here I am again with another isue in the entity wiki.
The modifierType in ResearchSubject is actually a condition and not an enumeration also the modifierType's enum values depends on wether it is under Bool or float.
As I just finished adding ResearchSubjects I though I would share the information.
Here is the two enum lists:
(bool)modifierType:
"AllowGalaxyTravel""AllowMissionOffers""AllowPacts""AllowPirateMissions""AllowResourceDemandAndGifts""AllowWormHoleTravel""CultureSpreadIsAlwaysVisible""HyperspaceDetectionAnyJumps""HyperspaceDetectionOneJump""HyperspaceDetectionTwoJumps""PlanetIsColonizable""PlanetsDetectedByCulture""RemoveRacialRelationPenalty""UnlockPact"
(float)modifierType:
"AllegianceFromCultureMaxPerc""AntimatterCapacityAdjustment""AntimatterRegenAdjustment""ArmorBaseAdjustment""BlackMarketBuyPriceAdjustment""BombingDamageAsDamageDealerAdjustment""BombingDamageAsDamageTargetAdjustment""BombingPopulationKilledPercAsDamageTarget""BombingRangeAdjustment""BountyBoughtAdjustment""BountyCollectedAdjustment""CapitalShipAngularThrustAdjustment""CapitalShipCultureProtectRateAdjustment""CapitalShipMaxSlotLevel""CapitalShipMaxSlots""CapitalShipMaxTrainableLevel""CargoShipCapacityAdjustment""CarrierFightersPerSquadAdjustment""CreditCostAdjustment""CultureAntimatterRegenAmount""CultureEnemyBuildRateAdjustment""CultureResistPercent""CultureShieldMitigationAdjustment""CultureSpreadDecayAdjustment""CultureSpreadRateAdjustment""CultureWeaponDamageAdjustment""DerivativeCreditsFromPurchasesPercent""DerivativeCreditsFromTradePercent""ExperienceAwardedAdjustment""ExperienceConstantGainLevelCap""ExperienceConstantGainRate""ExtractionRateCrystalAdjustment""ExtractionRateFromResourceFocus""ExtractionRateMetalAdjustment""HangarFightersPerSquadAdjustment""HullPointsMaxAdjustment""HullPointsRegenAdjustment""HyperspaceAntimatterCostAdjustment""HyperspaceBetweenSystemSpeedAdjustment""HyperspaceChargeUpRateAdjustment""HyperspaceExitDistanceAdjustment""HyperspaceInSystemSpeedAdjustment""HyperspaceSpeedPhaseGateAdjustment""IncomePercLost""MassReduction""ModuleBuildRateAdjustment""ModuleCostForSimilarTypesAdjustment""PirateStrengthAgainstYouAdjustment""PlanetHealthRegenRateAdjustment""PlanetPopulationCapAdjustment""PlanetSlotsCivilianIncrease""PlanetSlotsShipsAdjustment""PlanetSlotsTacticalIncrease""PlanetUpgradeBuildRateAdjustment""PlanetUpgradeCostAdjustment""PopulationGrowthRateAdjustment""PopulationTaxRateAdjustment""QuestDeadlineAdjustment""QuestFailureHappinessAdjustment""QuestRewardHappinessAdjustment""RebellionLevel""RelationshipBonus""ResearchBuildRateAdjustment""ResearchCostAdjustment""ResourceCostAdjustment""SalvageWreckagePercent""ScuttleRateAdjustment""ScuttleValueAdjustment""ShieldMaxMitigationAdjustment""ShieldPointsMaxAdjustment""ShieldPointsRegenAdjustment""ShipBuildRateAdjustment""ShipMaxSlotLevel""ShipMaxSlots""StarBaseArmorAdjustment""StarBaseBuildRateAtEnemyOrbitBodyAdjustment""StarBaseHullPointsMaxAdjustment""StarBaseShieldPointsMaxAdjustment""StarBaseShieldPointsRegenAdjustment""StarBaseWeaponDamageAdjustment""StarBaseWeaponTargetPerBankAdjustment""TemporaryRelationshipFromGiveCreditsValueAdjustment""TemporaryRelationshipFromGiveCrystalValueAdjustment""TemporaryRelationshipFromGiveMetalValueAdjustment""TemporaryRelationshipFromGiveResourceMaxAdjustment""TradeGoodsValueAdjustment""WeaponDamageAdjustment""WeaponIgnoresShieldsAdjustment""WeaponRangeAdjustment""WeaponRateOfFireAdjustment"
Next is the structure of each condition.
This is directly from my code, so the readability might suffer a little.
there is two structures:
float ' linkedPlanetType linkedWeaponClass linkedPlanetUpgradeType
bool ' linkedPlanetType linkedWeaponClass linkedPlanetUpgradeType allianceType pactUnlockEntityDefName
float() means that it belongs to the (float)modifierType and is only followed by baseValue and perLevelValue. bool() indicates that it belongs to the (bool)modifierType and is not followed by any lines. float(, , True) means that (float)modifierType is also followed by linkedPlanetUpgradeType, bool goes by the same logic.
Here is all of the conditions:
http://pastebin.com/QAWQLFhw I uploaded it here for the sake of readability and since I am not too good friends with the forum code block.
I've added this as an enhancement request.
Version 0.8.4 is now released.
This is really just a minor update that includes PirateRaidsOneLevelLower as a valid float modifier type.
I've not had a chance to address gruntmasters suggestion of turning the float modifiers into conditions so as to validate if the linked planet or linked weapon type is valid. It's still appropriate and may find it's way into a future release.
6/27/2011 v.0.8.4
Well now he's done it...my brains are et.
ZombieRus,
For 7DS Beta Work we devs are doing, not Beta 3 which is out now, I'm up to Beta 5 with new squads, research, etc...
I want to run your tool over what I'm working on now to find problems now and hopefully fix them before firing them off to Dan. About me, I'm not good at entity/abilities/buffs and do very little modding-wise of abilities/buffs. So, just which Eclipse do I download?Eclipse Helios 64-bit + which one or Eclipse Indigo 64-bit and there are multiple versions available. I've posted files on our site in the secret hideout, if you have access to that area. If not, I'll give you access to that area or bug someone else to give you access to it. I'd rather figure out how to do it myself, but hell, I'm having a migraine trying to figure out which Eclipse version to install.
Ya, it used to be much simpler.
I've confirmed Helios 3.6.2 works for some others, not sure what version they are on now though. I've not tried Indigo.
I use Galileo 3.5.2 for my stuff.
I think at this point I'll upload the version I use somewhere.
I uploaded the Win7 64bit version I'm using. Hopefully this will be easier.
http://www.mediafire.com/file/b3b5t8sa45rk29r/eclipse-SDK-3.5.2-win32-x86_64.zip
Version 0.9 is now released.
This release supports both the Diplomacy 1.3 and 1.31 hotfix changes.
7/21/2011 v.0.8.9 (link to download section)
Why is eclipse not working? It keeps on coming back with an error saying that it can't find javaw.exe. Does this thing not autodetect it? JDownloader works on java and it runs just fine.
Any help?
While you may have a java installed, it may not be setup fully to support Eclipse. One way to check is to see if you can start java from the command line.
What is usually expected is the following environment variable pointing to your java installation
JAVA_HOME
Mine is set to: C:\Program Files\Java\jdk1.6.0_18\bin
C:\Program Files (x86)\Java\jre6
That's what I got? Do I need a different Java version, if so, what?
It should work. Did you check if you have the JAVA_HOME environment variable?
I can't say I saw it. I can run it in the command prompt, if that's what your asking. Doesn't accomplish anything, though.
Installing the Java 6 SE JDK versus just the JRE may fix your issues.
http://www.oracle.com/technetwork/java/javase/downloads/index.html
That did it. I guess the usual download didn't do shit. You need the SDK. Thanks, good sir.
Okay, I've done a good look through on the program and your video, but I'm more inclined to use Notepad++ (mainly, due to the less overhead). I'll still hang onto it as an option, but Harpo's tools and Notepad++ is enough to suit my needs. This is good for bugs in the code, though.
I have no incentive to convince you to use this tool or not. I developed it for myself to use because I understand the value of an IDE like Eclipse for mod development/management. Others have found it useful as well, including SGI, SOA2, BSG, 7DS, etc.
I have no idea what you mean about less overhead unless you simply mean the learning curve necessary to use an IDE.
I've never said Harpos tools should be dumped. You need a way to convert files between binary/text or generate manifests. I have my own way to generate manifests personally, but use Harpos tool for the text conversion. Notepad++ is just too basic for my needs.
It's good for far more than that.
I should probably do a video for the simplest way to use Eclipse, but not sure when/if I'll have the time to sit down and prepare that and if it would have any impact. In general it seems some people are just better able to grasp how to use Eclipse while others need to stick to Notepad. I built the wiki explicitly for those that don't use Eclipse but can still benefit from the work I've done.
Cheers
It's a good job sir.
Now where is the java sdk that increases my tolerance for trial-and-error learning of another new program and makes me smarter?
I mean less overhead since I didn't have to go through a hassle like I did with Notepad++. I also didn't have to configure everything, I could use it right out of the gate. Regardless, as I said, I appreciate the option. It's just not my first pick to use.
HA! That really hasn't made it anymore stable. Not saying it's your fault, but they want to pack that thing down as much as possible.
I see. I call this learning curve.
If you know anything about computer programming then you would know a clean compile (not that 7ds is there) does not mean the program is free of logic errors. My tool acts more similar to a compiler in regards to the syntax checking and reference validation. In addition it is meant to speed up coding by limiting silly mistakes like miss-spelled values or invalid counts as well as providing useful things like content assistance, hover help, quick jump to referenced entity files as well as Eclipse's built-in functionality from it's project management to text editor and search functionality.
Sinperium, you seem to do well with trial-and-error on the mines mod you are doing. It sounds more like you are ok with this approach when it is something you are interested in.
I had more to write but lost interest in it... Suffice to say the tool works well, is used by many but not all and won't make you smarter no matter how often you use it.
There are many great features available to you once you register, including:
Sign in or Create Account