Fractal Softworks Forum

Starsector => Mods => Modding Resources => Topic started by: TJJ on September 12, 2012, 04:36:46 AM

Title: Eclipse modding tutorial (lots of pictures)
Post by: TJJ on September 12, 2012, 04:36:46 AM
There's already a netbeans tutorial, but none for Eclipse.
As Eclipse is my IDE of choice I figured I'd contribute one.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: TJJ on September 12, 2012, 04:36:59 AM
This tutorial has been written using Windows 7 x64; other platforms will vary slightly.

Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: TJJ on September 12, 2012, 05:00:34 AM
Reserved for other useful Eclipse hints & tips.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: nomadic_leader on June 30, 2017, 08:19:47 PM
Well, the pics are gone. The thread title is fake news.

Would it be ok if I added some new pics and some info for mac? Plus info about creating a simple jar and building for java 7 (starsector needs this one) vs java 8 (I guess starsector hates this one) since the latest version of eclipse insists you have java 8.

I don't actually understand any of this, but I did get it to make a simple jar that correctly affects the game, so I probably make some appropriate pics and instructions if someone else doublechecks for me.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: Ed on September 06, 2019, 05:17:31 PM
I know this is a 7 year old thread, but so far it helped me greatly, I managed to do the setup, but now I am not sure how to compile and test it
If anyone here uses Eclipse to make their mods please clarify that part for me.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: Alex on September 06, 2019, 05:19:58 PM
If you have everything set up correctly, and Project -> "build automatically" is checked, then it should be compiling it automatically.

For testing, what I personally do with a test mod is File -> Export and then export the mod's project as a jar, into the mod's folder. Then if you have your mod_info.json reference the jar in question, the game should load it when it runs.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: Ed on September 06, 2019, 05:35:11 PM
(https://i.imgur.com/Kefh4lN.png)

Like this right? I will make the jar, edit my modinfo to point to it and test then.

Weird, now the stuff that worked previously is not working at all

i got this error

Code
67271 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.UnsupportedClassVersionError: data/hullmods/ExpandedExplosion : Unsupported major.minor version 52.0
java.lang.UnsupportedClassVersionError: data/hullmods/ExpandedExplosion : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.fs.starfarer.loading.scripts.ScriptStore.?00000(Unknown Source)
at com.fs.starfarer.loading.specs.private.getFleetEffect(Unknown Source)
at com.fs.starfarer.loading.SpecStore.?00000(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.getCommander(Unknown Source)
at com.fs.starfarer.campaign.fleet.CampaignFleet.getCommander(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.createEmptyFleet(Unknown Source)
at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.createEmptyFleet(FleetFactoryV3.java:1054)
at com.fs.starfarer.api.impl.campaign.procgen.themes.RemnantThemeGenerator.addBattlestations(RemnantThemeGenerator.java:594)
at com.fs.starfarer.api.impl.campaign.procgen.themes.RemnantThemeGenerator.generateForSector(RemnantThemeGenerator.java:185)
at com.fs.starfarer.api.impl.campaign.procgen.themes.SectorThemeGenerator.generate(SectorThemeGenerator.java:46)
at com.fs.starfarer.api.impl.campaign.procgen.SectorProcGen.generate(SectorProcGen.java:200)
at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.N.dismiss(Unknown Source)
at com.fs.starfarer.ui.newui.o0oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.dismiss(Unknown Source)
at com.fs.starfarer.ui.newui.Objectsuper.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.advance(Unknown Source)
at com.fs.starfarer.ui.v.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.advance(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.advance(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

From this tiny hullmod

Code
package data.hullmods;

import com.fs.starfarer.api.combat.BaseHullMod;
import com.fs.starfarer.api.combat.MutableShipStatsAPI;
import com.fs.starfarer.api.combat.ShipAPI.HullSize;
import com.fs.starfarer.api.impl.campaign.ids.Stats;

public class ExpandedExplosion extends BaseHullMod {

public static final float RADIUS_MULT = 5f;
public static final float DAMAGE_MULT = 2f;

public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
stats.getDynamic().getStat(Stats.EXPLOSION_DAMAGE_MULT).modifyMult(id, DAMAGE_MULT);
stats.getDynamic().getStat(Stats.EXPLOSION_RADIUS_MULT).modifyMult(id, RADIUS_MULT);
}

public String getDescriptionParam(int index, HullSize hullSize) {
return null;
}


}

(I use this to make my tanker explode as something filled with fuel should)
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: Alex on September 06, 2019, 05:53:16 PM
Aha - this error ("Unsupported major.minor version 52.0") means that it's compiled for a different version of Java than what Starsector uses. Set the compile target to jre7.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: Ed on September 06, 2019, 06:01:36 PM
Downloading version 7 now, thanks Alex

Edit: It worked!!!

Finally, i was getting really stressed with this.
Title: Re: Eclipse modding tutorial (lots of pictures)
Post by: Alex on September 06, 2019, 07:09:26 PM
Nice, glad you got it! Yeah, with this sort of thing, just getting it all to work for the first time is really the hardest part.