Skip to content

Commit f16feb0

Browse files
committed
Iris Mode Switching methods
1 parent bddf1c7 commit f16feb0

2 files changed

Lines changed: 51 additions & 36 deletions

File tree

src/main/java/com/ghostipedia/cosmiccore/api/machine/multiblock/IrisMultiblockMachine.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import net.minecraftforge.api.distmarker.OnlyIn;
3030

3131
import lombok.Getter;
32+
import lombok.Setter;
3233
import org.jetbrains.annotations.NotNull;
3334

3435
import java.util.List;
@@ -48,10 +49,12 @@ public class IrisMultiblockMachine extends WorkableElectricMultiblockMachine {
4849
@Getter
4950
protected boolean isFuelable;
5051
protected Object workingSound;
52+
53+
@Setter
5154
@Persisted
5255
@DescSynced
5356
@UpdateListener(methodName = "onStatusSynced")
54-
private Stage stage = Stage.BLACK_HOLE;
57+
private Stage stage = Stage.EMPTY;
5558

5659
public enum Stage {
5760
EMPTY,
@@ -85,8 +88,10 @@ public void onStructureFormed() {
8588
super.onStructureFormed();
8689
}
8790

88-
public void isfuelable(boolean fuelable) {
89-
this.isFuelable = fuelable;
91+
public void setStarStage() {
92+
Stage[] values = Stage.values();
93+
int nextVal = (getStage().ordinal() + 1) % values.length;
94+
setStage(values[nextVal]);
9095
}
9196

9297
@Override
@@ -141,15 +146,15 @@ public Widget createUIWidget() {
141146
20,
142147
new GuiTextureGroup(
143148
GuiTextures.BUTTON,
144-
new TextTexture("cosmiccore.multiblock.fuel_star")),
145-
clickData -> isfuelable(true)));
149+
new TextTexture("Change Stage")),
150+
clickData -> setStarStage()));
146151
return group;
147152
}
148153

149154
@Override
150155
public void addDisplayText(List<Component> textList) {
151156
if (isFormed()) {
152-
textList.add(Component.translatable("cosmiccore.multiblock.iris.star_stage_early_star"));
157+
textList.add(Component.translatable(stage.toString()));
153158
textList.add(Component.translatable("cosmiccore.multiblock.iris.star_stage_sustain"));
154159
}
155160
}

src/main/java/com/ghostipedia/cosmiccore/client/renderer/machine/StellarIrisRender.java

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,25 @@ public void render(IrisMultiblockMachine machine, float partialTick, PoseStack p
8585
poseStack.mulPose(new Quaternionf().rotateAxis(totalTick * Mth.TWO_PI / 80, 0, 1, 0));
8686
poseStack.scale(10.0f, 10.0f, 10.0f);
8787

88-
// renderIris(poseStack, consumer, packedLight, packedOverlay);
89-
// renderRing(poseStack, consumer, packedLight, packedOverlay);
90-
renderStar(poseStack, consumer, totalTick, packedLight, packedOverlay);
91-
renderStarInsides(poseStack, consumer, totalTick, packedLight, packedOverlay);
92-
renderStarShell(poseStack, consumer, totalTick, packedLight, packedOverlay);
93-
94-
poseStack.popPose();
95-
96-
renderRingSmall(poseStack, consumer, totalTick, packedLight, packedOverlay);
88+
if (machine.getStage() == IrisMultiblockMachine.Stage.STAR) {
89+
renderStar(poseStack, consumer, totalTick, packedLight, packedOverlay); // The Actual Core, for some reason.
90+
renderStarInsides(poseStack, consumer, totalTick, packedLight, packedOverlay); // The Second Layer???
91+
renderStarShell(poseStack, consumer, totalTick, packedLight, packedOverlay);// This one made sense at least.
92+
poseStack.popPose();
93+
} else if (machine.getStage() == IrisMultiblockMachine.Stage.SUPERSTAR) {
94+
poseStack.scale(2, 2, 2);
95+
renderStar(poseStack, consumer, totalTick, packedLight, packedOverlay); // The Actual Core, for some reason.
96+
renderStarInsides(poseStack, consumer, totalTick, packedLight, packedOverlay); // The Second Layer???
97+
renderStarShell(poseStack, consumer, totalTick, packedLight, packedOverlay);// This one made sense at least.
98+
poseStack.popPose();
99+
} else if (machine.getStage() == IrisMultiblockMachine.Stage.BLACK_HOLE) {
100+
renderIris(poseStack, consumer, packedLight, packedOverlay);
101+
renderRing(poseStack, consumer, packedLight, packedOverlay);
102+
poseStack.popPose();
103+
renderRingSmall(poseStack, consumer, totalTick, packedLight, packedOverlay);
104+
} else {
105+
poseStack.popPose();
106+
}
97107
}
98108

99109
@Override
@@ -147,53 +157,53 @@ public void renderRingSmall(PoseStack poseStack, VertexConsumer consumer,
147157
poseStack.popPose();
148158
}
149159

150-
public void renderStar(PoseStack poseStack, VertexConsumer consumer,
151-
float totalTick, int packedLight, int packedOverlay) {
160+
public void renderStarInsides(PoseStack poseStack, VertexConsumer consumer,
161+
float totalTick, int packedLight, int packedOverlay) {
152162
poseStack.pushPose();
153-
154163
Quaternionf rot = new Quaternionf()
155-
.rotateXYZ(0.25f, 0.0f, 0f)
156-
.rotateAxis(totalTick * Mth.TWO_PI / 80, 0f, 1f, 1f);
164+
.rotateXYZ(0.65f, 0.0f, 0.35f)
165+
.rotateAxis(totalTick * Mth.TWO_PI / 80, 0f, 1f, 0f);
157166
poseStack.mulPose(rot);
158-
poseStack.scale(9.6f, 9.6f, 9.6f);
167+
poseStack.scale(1.05f, 1.05f, 1.05f);
159168
PoseStack.Pose pose = poseStack.last();
160169

161-
List<BakedQuad> quads = starCoreModel.getQuads(null, null, random, ModelData.EMPTY, null);
170+
List<BakedQuad> quads = innerStarSphereModel.getQuads(null, null, random, ModelData.EMPTY, null);
162171
for (BakedQuad quad : quads) {
163-
consumer.putBulkData(pose, quad, 1f, 1f, 1f, 0.65f, packedLight, packedOverlay, false);
172+
consumer.putBulkData(pose, quad, 1f, 1f, 1f, 0.5f, packedLight, packedOverlay, false);
164173
}
165174
poseStack.popPose();
166175
}
167176

168-
public void renderStarShell(PoseStack poseStack, VertexConsumer consumer,
169-
float totalTick, int packedLight, int packedOverlay) {
177+
public void renderStar(PoseStack poseStack, VertexConsumer consumer,
178+
float totalTick, int packedLight, int packedOverlay) {
170179
poseStack.pushPose();
171-
172180
Quaternionf rot = new Quaternionf()
173181
.rotateXYZ(0.65f, 0.0f, 0.35f)
174182
.rotateAxis(totalTick * Mth.TWO_PI / 80, 0f, 1f, 0f);
175183
poseStack.mulPose(rot);
176-
poseStack.scale(10.0f, 10.0f, 10.0f);
184+
poseStack.scale(1.03f, 1.03f, 1.03f);
177185
PoseStack.Pose pose = poseStack.last();
178186

179-
List<BakedQuad> quads = outerStarSphereModel.getQuads(null, null, random, ModelData.EMPTY, null);
187+
List<BakedQuad> quads = starCoreModel.getQuads(null, null, random, ModelData.EMPTY, null);
180188
for (BakedQuad quad : quads) {
181-
consumer.putBulkData(pose, quad, 1f, 1f, 1f, 0.5f, packedLight, packedOverlay, false);
189+
consumer.putBulkData(pose, quad, 1f, 1f, 1f, 0.98f, packedLight, packedOverlay, false);
182190
}
183191
poseStack.popPose();
184192
}
185193

186-
public void renderStarInsides(PoseStack poseStack, VertexConsumer consumer,
187-
float tick, int packedLight, int packedOverlay) {
194+
public void renderStarShell(PoseStack poseStack, VertexConsumer consumer,
195+
float totalTick, int packedLight, int packedOverlay) {
188196
poseStack.pushPose();
189-
190-
poseStack.mulPose(new Quaternionf().rotateAxis(tick * Mth.TWO_PI / 80, 0, 1f, 0));
191-
poseStack.scale(9.85f, 9.85f, 9.85f);
197+
Quaternionf rot = new Quaternionf()
198+
.rotateXYZ(0.65f, 0.0f, 0.35f)
199+
.rotateAxis(totalTick * Mth.TWO_PI / 80, 0f, 1f, 0f);
200+
poseStack.mulPose(rot);
201+
poseStack.scale(1.09f, 1.09f, 1.09f);
192202
PoseStack.Pose pose = poseStack.last();
193203

194-
List<BakedQuad> quads = innerStarSphereModel.getQuads(null, null, random, ModelData.EMPTY, null);
204+
List<BakedQuad> quads = outerStarSphereModel.getQuads(null, null, random, ModelData.EMPTY, null);
195205
for (BakedQuad quad : quads) {
196-
consumer.putBulkData(pose, quad, 1f, 1f, 1f, 0.7f, packedLight, packedOverlay, false);
206+
consumer.putBulkData(pose, quad, 1f, 1f, 1f, 1f, packedLight, packedOverlay, false);
197207
}
198208
poseStack.popPose();
199209
}

0 commit comments

Comments
 (0)