Add fourth scene and convert indentation to tabs

This commit is contained in:
George Paton 2024-03-19 00:44:41 +11:00
parent 7f2411c216
commit 67fbcfd3c2
2 changed files with 202 additions and 130 deletions

View File

@ -22,180 +22,250 @@ import net.minecraftforge.common.util.ForgeDirection;
public class CanneryHadron extends CanneryBase { public class CanneryHadron extends CanneryBase {
@Override @Override
public ItemStack getIcon() { public ItemStack getIcon() {
return new ItemStack(ModBlocks.hadron_core); return new ItemStack(ModBlocks.hadron_core);
} }
@Override @Override
public String getName() { public String getName() {
return "cannery.hadron"; return "cannery.hadron";
} }
@Override @Override
public JarScript createScript() { public JarScript createScript() {
WorldInAJar world = new WorldInAJar(25, 5, 25); WorldInAJar world = new WorldInAJar(25, 5, 25);
JarScript script = new JarScript(world); JarScript script = new JarScript(world);
// FIRST SCENE: Show and explain the core component
JarScene scene0 = new JarScene(script);
scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal()));
scene0.add(new ActionSetZoom(4, 0));
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200) // FIRST SCENE: Show and explain the core component
.setColors(colorCopper).setOrientation(Orientation.BOTTOM))); JarScene scene0 = new JarScene(script);
scene0.add(new ActionSetZoom(4, 0));
scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal()));
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene0.add(new ActionWait(100)); scene0.add(new ActionWait(100));
scene0.add(new ActionRemoveActor(1)); scene0.add(new ActionRemoveActor(1));
scene0.add(new ActionWait(5)); scene0.add(new ActionWait(5));
scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200) scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM))); .setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene0.add(new ActionWait(100)); scene0.add(new ActionWait(100));
scene0.add(new ActionRemoveActor(2)); scene0.add(new ActionRemoveActor(2));
scene0.add(new ActionWait(10)); scene0.add(new ActionWait(10));
scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200) scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM))); .setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene0.add(new ActionWait(80)); scene0.add(new ActionWait(80));
scene0.add(new ActionRemoveActor(3)); scene0.add(new ActionRemoveActor(3));
scene0.add(new ActionWait(5)); scene0.add(new ActionWait(5));
scene0.add(new ActionRotateBy(-90, 0, 10)); scene0.add(new ActionRotateBy(-90, 0, 10));
scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200) scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM))); .setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene0.add(new ActionWait(80)); scene0.add(new ActionWait(80));
scene0.add(new ActionRemoveActor(4)); scene0.add(new ActionRemoveActor(4));
scene0.add(new ActionWait(5)); scene0.add(new ActionWait(5));
scene0.add(new ActionRotateBy(90, 0, 10)); scene0.add(new ActionRotateBy(90, 0, 10));
// SECOND SCENE: Begin building a coil around the core component
JarScene scene1 = new JarScene(script);
scene1.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); // SECOND SCENE: Begin building a coil around the core component
JarScene scene1 = new JarScene(script);
scene1.add(new ActionSetZoom(4, 0)); scene1.add(new ActionSetZoom(4, 0));
scene1.add(new ActionSetZoom(-2, 10)); scene1.add(new ActionSetZoom(-2, 10));
for(int i = 0; i < 8; i++) { for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4; double r = i * Math.PI / 4;
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy)); scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy));
scene1.add(new ActionWait(2)); scene1.add(new ActionWait(2));
} }
scene1.add(new ActionWait(5)); scene1.add(new ActionWait(5));
scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200) scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM))); .setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene1.add(new ActionWait(40)); scene1.add(new ActionWait(40));
for(Block block : new Block[] { for(Block block : new Block[] {
ModBlocks.hadron_coil_gold, ModBlocks.hadron_coil_gold,
ModBlocks.hadron_coil_neodymium, ModBlocks.hadron_coil_neodymium,
ModBlocks.hadron_coil_magtung, ModBlocks.hadron_coil_magtung,
ModBlocks.hadron_coil_schrabidium, ModBlocks.hadron_coil_schrabidium,
ModBlocks.hadron_coil_schrabidate, ModBlocks.hadron_coil_schrabidate,
ModBlocks.hadron_coil_starmetal, ModBlocks.hadron_coil_starmetal,
ModBlocks.hadron_coil_chlorophyte, ModBlocks.hadron_coil_chlorophyte,
ModBlocks.hadron_coil_mese ModBlocks.hadron_coil_mese
}) { }) {
for(int i = 0; i < 8; i++) { for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4; double r = i * Math.PI / 4;
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block)); scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block));
scene1.add(new ActionWait(1)); scene1.add(new ActionWait(1));
} }
scene1.add(new ActionWait(4)); scene1.add(new ActionWait(4));
} }
scene1.add(new ActionWait(20));
scene1.add(new ActionRemoveActor(5));
scene1.add(new ActionWait(5));
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating));
scene1.add(new ActionWait(2));
}
scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene1.add(new ActionWait(60));
scene1.add(new ActionRemoveActor(6));
scene1.add(new ActionWait(5));
// THIRD SCENE: Add the Access Terminal and Power Plug
JarScene scene2 = new JarScene(script);
scene2.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal())); scene1.add(new ActionWait(20));
scene1.add(new ActionRemoveActor(5));
scene1.add(new ActionWait(5));
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating));
scene1.add(new ActionWait(2));
}
scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene1.add(new ActionWait(60));
scene1.add(new ActionRemoveActor(6));
scene1.add(new ActionWait(5));
// THIRD SCENE: Add the Access Terminal and Power Plug
JarScene scene2 = new JarScene(script);
scene2.add(new ActionSetZoom(2, 0)); scene2.add(new ActionSetZoom(2, 0));
for(int i = 0; i < 8; i++) { scene2.add(new ActionWait(5));
double r = i * Math.PI / 4;
scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_mese));
}
for(int i = 0; i < 12; i++) { for(int i = 7; i >= 0; i--) {
double r = i * Math.PI / 6; double r = i * Math.PI / 4;
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating)); scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium));
} scene2.add(new ActionWait(1));
}
scene2.add(new ActionWait(5)); scene2.add(new ActionWait(20));
for(int i = 7; i >= 0; i--) { scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air));
double r = i * Math.PI / 4;
scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium));
scene2.add(new ActionWait(1));
}
scene2.add(new ActionWait(20)); scene2.add(new ActionWait(15));
scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air)); scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal()));
scene2.add(new ActionWait(15)); scene2.add(new ActionWait(10));
scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal())); scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100)
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
scene2.add(new ActionWait(80));
scene2.add(new ActionRemoveActor(7));
scene2.add(new ActionWait(20));
scene2.add(new ActionWait(10)); scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air));
scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100) scene2.add(new ActionWait(15));
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
scene2.add(new ActionWait(80));
scene2.add(new ActionRemoveActor(7));
scene2.add(new ActionWait(20));
scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air)); scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power));
scene2.add(new ActionWait(15)); scene2.add(new ActionWait(10));
scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power)); scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene2.add(new ActionWait(10));
scene2.add(new ActionWait(80));
scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200) scene2.add(new ActionRemoveActor(8));
.setColors(colorCopper).setOrientation(Orientation.BOTTOM))); scene2.add(new ActionWait(20));
scene2.add(new ActionWait(80));
scene2.add(new ActionRemoveActor(8));
scene2.add(new ActionWait(20));
script.addScene(scene0).addScene(scene1).addScene(scene2);
return script; // FOURTH SCENE: Add some coil segments and power them
} JarScene scene3 = new JarScene(script);
scene3.add(new ActionSetZoom(2, 0));
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 11, ModBlocks.hadron_coil_neodymium));
scene3.add(new ActionWait(2));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 11, ModBlocks.hadron_plating));
scene3.add(new ActionWait(2));
}
scene3.add(new ActionWait(5));
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium));
scene3.add(new ActionWait(2));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 10, ModBlocks.hadron_plating));
scene3.add(new ActionWait(2));
}
scene3.add(new ActionWait(20));
scene3.add(new ActionSetBlock(12, 2 + 2, 10, Blocks.air));
scene3.add(new ActionWait(15));
scene3.add(new ActionSetBlock(12, 2 + 2, 10, ModBlocks.hadron_power));
scene3.add(new ActionWait(10));
scene3.add(new ActionCreateActor(9, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -28, -28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.8")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene3.add(new ActionWait(20));
scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("50 x 8 = 400 = 4MHE")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
scene3.add(new ActionWait(20));
scene3.add(new ActionWait(80));
scene3.add(new ActionRemoveActor(9));
scene3.add(new ActionWait(10));
scene3.add(new ActionCreateActor(11, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.9")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene3.add(new ActionWait(80));
scene3.add(new ActionRemoveActor(11));
scene3.add(new ActionWait(10));
scene3.add(new ActionRemoveActor(10));
// FIFTH SCENE: Add a bend to the coil
// SIXTH SCENE: Reach the Analysis Chamber
// ADDENDUM SCENE: Linear accelerators
// ADDENDUM SCENE: Schottky diodes
script.addScene(scene0).addScene(scene1).addScene(scene2).addScene(scene3);
return script;
}
} }

View File

@ -532,6 +532,8 @@ cannery.hadron.4=A coil segment is constructed by using 8 Dense Coils with nothi
cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating
cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals
cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge
cannery.hadron.8=The Accelerator will require enough Power Plugs to supply at least 10KHE of electricity per unit of Coil Strength
cannery.hadron.9=Note that the coil segment that wraps around the Core Component is not factored into the Coil Strength calculation
chem.ARSENIC=Arsenic Extraction chem.ARSENIC=Arsenic Extraction
chem.ASPHALT=Asphalt Production chem.ASPHALT=Asphalt Production