diff options
| author | Maya <10861407+serenibyss@users.noreply.github.com> | 2024-10-03 17:14:28 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-03 22:14:28 +0000 |
| commit | e16f7ac07662fc1c1d9dc169620acaec062ef939 (patch) | |
| tree | c8ca20bc922caca89edcc1ca65e92be414c7f9a4 /src/main/java/tectech/thing/block/TileEntityForgeOfGods.java | |
| parent | 2f5a7889650e0fcaf8c95e95b37737af82a40798 (diff) | |
| download | GT5-Unofficial-e16f7ac07662fc1c1d9dc169620acaec062ef939.tar.gz GT5-Unofficial-e16f7ac07662fc1c1d9dc169620acaec062ef939.tar.bz2 GT5-Unofficial-e16f7ac07662fc1c1d9dc169620acaec062ef939.zip | |
Godforge encore (#3213)
Co-authored-by: GDCloud <gdcloudstrike@gmail.com>
Diffstat (limited to 'src/main/java/tectech/thing/block/TileEntityForgeOfGods.java')
| -rw-r--r-- | src/main/java/tectech/thing/block/TileEntityForgeOfGods.java | 70 |
1 files changed, 67 insertions, 3 deletions
diff --git a/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java b/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java index dfe4bab143..49ab89de2b 100644 --- a/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java +++ b/src/main/java/tectech/thing/block/TileEntityForgeOfGods.java @@ -17,6 +17,10 @@ public class TileEntityForgeOfGods extends TileEntity { private int ringCount = 1; private float colorR = .7f, colorG = .8f, colorB = 1f, gamma = 3f; private float rotAngle = 0, rotAxisX = 1, rotAxisY = 0, rotAxisZ = 0; + private int rainbowR = 255, rainbowG = 0, rainbowB = 0; + private int rainbowState = 0; + private boolean rainbowMode = false; + private int rainbowCycleSpeed = 1; private static final String NBT_TAG = "FOG:"; private static final String ROTATION_SPEED_NBT_TAG = NBT_TAG + "ROTATION"; @@ -30,6 +34,8 @@ public class TileEntityForgeOfGods extends TileEntity { private static final String ROT_AXIS_X_NBT_TAG = NBT_TAG + "ROT_AXIS_X"; private static final String ROT_AXIS_Y_NBT_TAG = NBT_TAG + "ROT_AXIS_Y"; private static final String ROT_AXIS_Z_NBT_TAG = NBT_TAG + "ROT_AXIS_Z"; + private static final String RAINBOW_MODE_NBT_TAG = NBT_TAG + "RAINBOW_MODE"; + private static final String RAINBOW_MODE_CYCLE_SPEED_NBT_TAG = NBT_TAG + "RAINBOW_MODE_CYCLE_SPEED"; public static final float BACK_PLATE_DISTANCE = -121.5f, BACK_PLATE_RADIUS = 13f; @@ -60,15 +66,15 @@ public class TileEntityForgeOfGods extends TileEntity { } public float getColorR() { - return colorR; + return rainbowMode ? rainbowR / 255f : colorR; } public float getColorG() { - return colorG; + return rainbowMode ? rainbowG / 255f : colorG; } public float getColorB() { - return colorB; + return rainbowMode ? rainbowB / 255f : colorB; } public float getGamma() { @@ -86,6 +92,15 @@ public class TileEntityForgeOfGods extends TileEntity { this.gamma = gamma; } + public void setRainbowMode(boolean state, int cycleSpeed) { + this.rainbowMode = state; + this.rainbowCycleSpeed = cycleSpeed; + } + + public boolean getRainbowMode() { + return rainbowMode; + } + public int getRingCount() { return ringCount; } @@ -157,6 +172,51 @@ public class TileEntityForgeOfGods extends TileEntity { return y0 + ((x - x0) * (y1 - y0)) / (x1 - x0); } + public void incrementRainbowColors() { + if (rainbowState == 0) { + rainbowG += rainbowCycleSpeed; + if (rainbowG >= 255) { + rainbowG = 255; + rainbowState = 1; + } + } + if (rainbowState == 1) { + rainbowR -= rainbowCycleSpeed; + if (rainbowR <= 0) { + rainbowR = 0; + rainbowState = 2; + } + } + if (rainbowState == 2) { + rainbowB += rainbowCycleSpeed; + if (rainbowB >= 255) { + rainbowB = 255; + rainbowState = 3; + } + } + if (rainbowState == 3) { + rainbowG -= rainbowCycleSpeed; + if (rainbowG <= 0) { + rainbowG = 0; + rainbowState = 4; + } + } + if (rainbowState == 4) { + rainbowR += rainbowCycleSpeed; + if (rainbowR >= 255) { + rainbowR = 255; + rainbowState = 5; + } + } + if (rainbowState == 5) { + rainbowB -= rainbowCycleSpeed; + if (rainbowB <= 0) { + rainbowB = 0; + rainbowState = 0; + } + } + } + @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); @@ -171,6 +231,8 @@ public class TileEntityForgeOfGods extends TileEntity { compound.setFloat(ROT_AXIS_X_NBT_TAG, rotAxisX); compound.setFloat(ROT_AXIS_Y_NBT_TAG, rotAxisY); compound.setFloat(ROT_AXIS_Z_NBT_TAG, rotAxisZ); + compound.setBoolean(RAINBOW_MODE_NBT_TAG, rainbowMode); + compound.setInteger(RAINBOW_MODE_CYCLE_SPEED_NBT_TAG, rainbowCycleSpeed); } @Override @@ -190,6 +252,8 @@ public class TileEntityForgeOfGods extends TileEntity { rotAxisX = compound.getFloat(ROT_AXIS_X_NBT_TAG); rotAxisY = compound.getFloat(ROT_AXIS_Y_NBT_TAG); rotAxisZ = compound.getFloat(ROT_AXIS_Z_NBT_TAG); + rainbowMode = compound.getBoolean(RAINBOW_MODE_NBT_TAG); + rainbowCycleSpeed = compound.getInteger(RAINBOW_MODE_CYCLE_SPEED_NBT_TAG); } @Override |
