Skip to content

Commit 362be69

Browse files
committed
Apply paintjob each frame in combat.
1 parent e3931e2 commit 362be69

8 files changed

Lines changed: 25 additions & 27 deletions

File tree

CHANGELOGS.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Version 1.5.2
33
- Added `fleet_attitude` to MagicBounty, allowing you to make a fleet neutral or hostile.
44
- If a bounty has no spawn locations, try again without Tags.THEME_HIDDEN.
55
- For bounties that *only* spawn in hidden systems.
6+
67
**MagicPaintjobs**
78
- Added template files for MagicPaintjobs 2.0.
89
- Fixed ships not showing up in new paintjob selector if they have a D-mod.
@@ -21,18 +22,18 @@ by Starficz
2122
- The file is in JSON, all attributes optional, with the format being:
2223
```json
2324
{
24-
"engineSpec":{
25-
"color":[0,0,0,0],
26-
"contrailColor":[0,0,0,0],
27-
"spawnDistMult":1,
28-
"contrailWidthMultiplier":1,
29-
"glowAlternateColor":[0,0,0,0],
30-
"glowSizeMult": 1
25+
"engines":{
26+
"color":[0,0,0,0],
27+
"glowAlternateColor":[0,0,0,0],
28+
"glowSizeMult": 1,
29+
"contrailColor":[0,0,0,0],
30+
"contrailSpawnDistMult":1,
31+
"contrailWidthMultiplier":1
3132
},
3233
"shield":{
33-
"innerColor":[0,0,0,0],
34-
"ringColor":[0,0,0,0],
35-
"innerRotationRate":1,
34+
"innerColor":[0,0,0,0],
35+
"ringColor":[0,0,0,0],
36+
"innerRotationRate":1,
3637
"ringRotationRate":1
3738
}
3839
}

data/config/paintjobs/magic_paintjobs.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ id,hullIds,name,paintjobFamily,spriteId,unlockedAutomatically,tags,unlockConditi
1414
# More info: https://starsector.wiki.gg/wiki/MagicLib#Ship_Sprite
1515
,,,,,,,
1616
# Example,,,,,,,
17-
magiclib_hullid_examplePaintjob,onslaught,Hegslaught,Hegemony,graphics/ships/onslaught/onslaught_hegemony.png,false,,Complete the 'Slayer' achievement to unlock.,Hegemony Onslaught sprite.
17+
# magiclib_hullid_examplePaintjob,fury,Whitefox,Whitefox,graphics/ships/magicPaintjob_example_ship.png,false,,Complete the 'Slayer' achievement to unlock.,Whitefox Fury sprite by Nes.
1818

1919
# Modules Example,,,,,,,
2020
# SCY_bluesky_nemeanlion,SCY_nemeanlion,Bluesky,Bluesky,graphics/bluesky/ships/SCY_nemeanLion.png,true,,,,

data/config/paintjobs/magiclib_hullid_examplePaintjob.paintjob

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
{
55
"engines":{
66
"color":[0,0,0,0],
7+
"glowAlternateColor":[0,0,0,0],
8+
"glowSizeMult": 1
9+
# Not sure if contrails do anything on ships, except maybe Manuv. Jets
710
"contrailColor":[0,0,0,0],
8-
"spawnDistMult":1,
11+
"contrailSpawnDistMult":1,
912
"contrailWidthMultiplier":1,
10-
"glowAlternateColor":[0,0,0,0],
11-
"glowSizeMult": 5
1213
},
1314
"shield":{
1415
"innerColor":[0,0,0,0],
56.1 KB
Loading

jars/MagicLib.jar

33 Bytes
Binary file not shown.

magiclib.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
{
99
"major": "1",
1010
"minor": "5",
11-
"patch": "2-dev01"
11+
"patch": "2"
1212
}
1313
}

src/org/magiclib/paintjobs/MagicPaintjobHullMod.kt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package org.magiclib.paintjobs
22

3-
import com.fs.starfarer.api.Global
43
import com.fs.starfarer.api.campaign.CampaignUIAPI
54
import com.fs.starfarer.api.campaign.econ.MarketAPI
65
import com.fs.starfarer.api.combat.BaseHullMod
76
import com.fs.starfarer.api.combat.ShipAPI
8-
import com.fs.starfarer.api.combat.WeaponAPI
97
import com.fs.starfarer.api.ui.TooltipMakerAPI
108
import com.fs.starfarer.api.util.Misc
119
import org.magiclib.util.MagicTxt
@@ -37,8 +35,8 @@ class MagicPaintjobHullMod : BaseHullMod() {
3735
val paintjob = MagicPaintjobManager.getCurrentShipPaintjob(ship.variant) ?: return
3836

3937
// fighter wing paintjobs
40-
for(wing in ship.allWings){
41-
for(fighter in wing.wingMembers){
38+
for (wing in ship.allWings) {
39+
for (fighter in wing.wingMembers) {
4240
if ("MagicPaintjobApplied" in fighter.customData) continue
4341

4442
MagicPaintjobManager.getPaintjobsForHull(fighter.hullSpec.baseHullId).firstOrNull {
@@ -50,13 +48,11 @@ class MagicPaintjobHullMod : BaseHullMod() {
5048
}
5149

5250

53-
if ("MagicPaintjobApplied" in ship.customData) return
54-
// if the paintjob sets engines, delay until the engines exist
55-
if (ship.engineController.shipEngines.isEmpty() && paintjob.engineSpec != null) return
56-
57-
MagicPaintjobManager.applyPaintjob(ship, paintjob)
58-
59-
ship.setCustomData("MagicPaintjobApplied", true)
51+
// If the paintjob sets engines, delay until the engines exist
52+
if (ship.engineController.shipEngines.isNotEmpty() || paintjob.engineSpec == null) {
53+
// Apply each frame because of shields.
54+
MagicPaintjobManager.applyPaintjob(ship, paintjob)
55+
}
6056
}
6157

6258
override fun canBeAddedOrRemovedNow(

src/org/magiclib/paintjobs/MagicPaintjobManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ object MagicPaintjobManager {
177177
MagicPaintjobSpec.PaintjobEngineSpec(
178178
engineJson.optColor("color", null),
179179
engineJson.optColor("contrailColor", null),
180-
engineJson.optFloat("spawnDistMult").takeIf { !it.isNaN() },
180+
engineJson.optFloat("contrailSpawnDistMult").takeIf { !it.isNaN() },
181181
engineJson.optFloat("contrailWidthMultiplier").takeIf { !it.isNaN() },
182182
engineJson.optColor("glowAlternateColor", null),
183183
engineJson.optFloat("glowSizeMult").takeIf { !it.isNaN() }

0 commit comments

Comments
 (0)