Finish building the whole accelerator in the presentation! (fucking hell)

This commit is contained in:
George Paton 2024-03-19 15:03:49 +11:00
parent cac7aa6705
commit d65469e1c0
2 changed files with 423 additions and 12 deletions

View File

@ -6,6 +6,7 @@ import com.hbm.wiaj.JarScene;
import com.hbm.wiaj.JarScript;
import com.hbm.wiaj.WorldInAJar;
import com.hbm.wiaj.actions.ActionCreateActor;
import com.hbm.wiaj.actions.ActionOffsetBy;
import com.hbm.wiaj.actions.ActionRemoveActor;
import com.hbm.wiaj.actions.ActionRotateBy;
import com.hbm.wiaj.actions.ActionSetBlock;
@ -151,11 +152,9 @@ public class CanneryHadron extends CanneryBase {
scene2.add(new ActionWait(20));
scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air));
scene2.add(new ActionWait(15));
scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal()));
scene2.add(new ActionWait(10));
scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100)
@ -166,11 +165,9 @@ public class CanneryHadron extends CanneryBase {
scene2.add(new ActionWait(20));
scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air));
scene2.add(new ActionWait(15));
scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power));
scene2.add(new ActionWait(10));
scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200)
@ -215,22 +212,32 @@ public class CanneryHadron extends CanneryBase {
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 ActionWait(40));
scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("50 x 8 = 400 = 4MHE")}}, 200)
scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.0")}, {I18nUtil.resolveKey("cannery.hadron.math.1")}}, 0)
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
scene3.add(new ActionWait(20));
scene3.add(new ActionWait(40));
scene3.add(new ActionRemoveActor(10));
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_starmetal));
scene3.add(new ActionWait(1));
}
scene3.add(new ActionCreateActor(13, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.2")}, {I18nUtil.resolveKey("cannery.hadron.math.3")}}, 0)
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
scene3.add(new ActionWait(80));
scene3.add(new ActionRemoveActor(9));
@ -241,29 +248,423 @@ public class CanneryHadron extends CanneryBase {
scene3.add(new ActionWait(80));
scene3.add(new ActionRemoveActor(11));
scene3.add(new ActionWait(5));
scene3.add(new ActionCreateActor(12, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.10")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene3.add(new ActionWait(80));
scene3.add(new ActionRemoveActor(12));
scene3.add(new ActionWait(10));
scene3.add(new ActionRemoveActor(10));
scene3.add(new ActionRemoveActor(13));
for(int i = 7; i >= 0; 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(1));
}
// FIFTH SCENE: Add a bend to the coil
JarScene scene4 = new JarScene(script);
scene4.add(new ActionSetZoom(2, 0));
scene4.add(new ActionOffsetBy(0, 0, 4, 10));
scene4.add(new ActionRotateBy(90, 0, 10));
// BEGIN CORNER SEGMENT
for(int z = 9; z >= 7; z--) {
for(int x = 11; x <= 14; x++) {
if(z == 7 && x == 11) continue;
scene4.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
scene4.add(new ActionWait(2));
}
}
for(int z = 9; z >= 6; z--) {
for(int x = 10; x <= 14; x++) {
if(z == 6 && x <= 11) continue;
if(z <= 7 && x == 10) continue;
scene4.add(new ActionSetBlock(x, 1, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene4.add(new ActionWait(2));
}
}
for(int z = 9; z >= 6; z--) {
for(int x = 10; x <= 14; x++) {
if(z == 6 && x <= 11) continue;
if(z <= 7 && x == 10) continue;
if(z == 9 && x == 12) continue;
if(z == 8 && x == 12) continue;
if(z == 8 && x == 13) continue;
if(z == 8 && x == 14) continue;
scene4.add(new ActionSetBlock(x, 2, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene4.add(new ActionWait(2));
}
}
// END CORNER SEGMENT
scene4.add(new ActionWait(5));
scene4.add(new ActionCreateActor(14, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -8, -35, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.11")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene4.add(new ActionWait(80));
scene4.add(new ActionRemoveActor(14));
scene4.add(new ActionWait(5));
scene4.add(new ActionCreateActor(15, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 24, -16, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.12")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene4.add(new ActionWait(80));
scene4.add(new ActionRemoveActor(15));
scene4.add(new ActionWait(10));
for(int z = 9; z >= 6; z--) {
for(int x = 10; x <= 14; x++) {
if(z == 6 && x <= 11) continue;
if(z <= 7 && x == 10) continue;
scene4.add(new ActionSetBlock(x, 3, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene4.add(new ActionWait(2));
}
}
for(int z = 9; z >= 7; z--) {
for(int x = 11; x <= 14; x++) {
if(z == 7 && x == 11) continue;
scene4.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
scene4.add(new ActionWait(2));
}
}
scene4.add(new ActionWait(10));
scene4.add(new ActionSetBlock(14, 2 + 2, 8, Blocks.air));
scene4.add(new ActionWait(10));
scene4.add(new ActionSetBlock(14, 2 + 2, 8, ModBlocks.hadron_power));
scene4.add(new ActionWait(10));
// SIXTH SCENE: Reach the Analysis Chamber
JarScene scene5 = new JarScene(script);
scene5.add(new ActionSetZoom(2, 0));
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
scene5.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating));
scene5.add(new ActionWait(1));
}
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
scene5.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
scene5.add(new ActionWait(1));
}
// BEGIN CORNER SEGMENT
for(int x = 17; x <= 19; x++) {
for(int z = 10; z >= 7; z--) {
if(z == 7 && x == 19) continue;
scene5.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
scene5.add(new ActionWait(1));
}
}
for(int x = 17; x <= 20; x++) {
for(int z = 10; z >= 6; z--) {
if(z == 6 && x >= 19) continue;
if(z <= 7 && x == 20) continue;
scene5.add(new ActionSetBlock(x, 1, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene5.add(new ActionWait(1));
}
}
for(int x = 17; x <= 20; x++) {
for(int z = 10; z >= 6; z--) {
if(z == 6 && x >= 19) continue;
if(z <= 7 && x == 20) continue;
if(z == 9 && x == 18) continue;
if(z == 8 && x == 18) continue;
if(z == 8 && x == 17) continue;
if(z == 10 && x == 18) continue;
scene5.add(new ActionSetBlock(x, 2, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene5.add(new ActionWait(1));
}
}
for(int x = 17; x <= 20; x++) {
for(int z = 10; z >= 6; z--) {
if(z == 6 && x >= 19) continue;
if(z <= 7 && x == 20) continue;
scene5.add(new ActionSetBlock(x, 3, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene5.add(new ActionWait(1));
}
}
for(int x = 17; x <= 19; x++) {
for(int z = 10; z >= 7; z--) {
if(z == 7 && x == 19) continue;
scene5.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
scene5.add(new ActionWait(1));
}
}
// END CORNER SEGMENT
scene5.add(new ActionRotateBy(-90, 0, 5));
scene5.add(new ActionOffsetBy(0, 0, -8, 10));
scene5.add(new ActionRotateBy(-90, 0, 10));
scene5.add(new ActionSetZoom(-1, 10));
for(int z = 11; z <= 20; z++) {
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium));
if(z == 11 || z == 20) scene5.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && z % 3 == 0 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
if(z == 11 || z == 20) scene5.add(new ActionWait(1));
}
scene5.add(new ActionWait(z < 13 || z > 18 ? 2 : 1));
}
// SEVENTH SCENE: Actually build the Analysis Chamber
JarScene scene6 = new JarScene(script);
scene6.add(new ActionSetZoom(1, 0));
scene6.add(new ActionSetZoom(1, 10));
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 13, ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 13, ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
for(int z = 14; z <= 16; z++) {
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 6 ? ModBlocks.hadron_analysis_glass : ModBlocks.hadron_analysis));
scene6.add(new ActionWait(2));
}
}
scene6.add(new ActionWait(10));
scene6.add(new ActionCreateActor(16, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.13")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene6.add(new ActionWait(100));
scene6.add(new ActionRemoveActor(16));
scene6.add(new ActionWait(10));
for(int z = 17; z <= 20; z++) {
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium));
if(z == 17 || z == 20) scene6.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && (z == 18 || z == 20) ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
if(z == 17 || z == 20) scene6.add(new ActionWait(1));
}
scene6.add(new ActionWait(1));
}
scene6.add(new ActionSetZoom(-1, 10));
// BEGIN CORNER SEGMENT
for(int x = 17; x <= 19; x++) {
for(int z = 23; z >= 21; z--) {
if(z == 23 && x == 19) continue;
scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
}
for(int x = 17; x <= 20; x++) {
for(int z = 24; z >= 21; z--) {
if(z == 24 && x >= 19) continue;
if(z >= 23 && x == 20) continue;
scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
}
for(int x = 17; x <= 20; x++) {
for(int z = 24; z >= 21; z--) {
if(z == 24 && x >= 19) continue;
if(z >= 23 && x == 20) continue;
if(z == 21 && x == 18) continue;
if(z == 22 && x == 18) continue;
if(z == 22 && x == 17) continue;
if(z == 20 && x == 18) continue;
scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
}
for(int x = 17; x <= 20; x++) {
for(int z = 24; z >= 21; z--) {
if(z == 24 && x >= 19) continue;
if(z >= 23 && x == 20) continue;
scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
}
for(int x = 17; x <= 19; x++) {
for(int z = 23; z >= 21; z--) {
if(z == 23 && x == 19) continue;
scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
}
// END CORNER SEGMENT
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
for(int i = 0; i < 8; i++) {
double r = i * Math.PI / 4;
scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
for(int i = 0; i < 12; i++) {
double r = i * Math.PI / 6;
scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
// BEGIN CORNER SEGMENT
for(int x = 11; x <= 13; x++) {
for(int z = 23; z >= 21; z--) {
if(z == 23 && x == 11) continue;
scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
}
for(int x = 10; x <= 13; x++) {
for(int z = 24; z >= 21; z--) {
if(z == 24 && x <= 11) continue;
if(z >= 23 && x == 10) continue;
scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
}
for(int x = 10; x <= 13; x++) {
for(int z = 24; z >= 21; z--) {
if(z == 24 && x <= 11) continue;
if(z >= 23 && x == 10) continue;
if(z == 21 && x == 12) continue;
if(z == 22 && x == 12) continue;
if(z == 22 && x == 13) continue;
scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
}
for(int x = 10; x <= 13; x++) {
for(int z = 24; z >= 21; z--) {
if(z == 24 && x <= 11) continue;
if(z >= 23 && x == 10) continue;
scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
scene6.add(new ActionWait(1));
}
}
for(int x = 11; x <= 13; x++) {
for(int z = 23; z >= 21; z--) {
if(z == 23 && x == 11) continue;
scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
scene6.add(new ActionWait(1));
}
}
// END CORNER SEGMENT
scene6.add(new ActionWait(10));
scene6.add(new ActionCreateActor(17, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -50, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.14")}}, 200)
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
scene6.add(new ActionWait(100));
scene6.add(new ActionRemoveActor(17));
scene6.add(new ActionWait(10));
// ADDENDUM SCENE: Linear accelerators
// ADDENDUM SCENE: Schottky diodes
script.addScene(scene0).addScene(scene1).addScene(scene2).addScene(scene3);
// ADDENDUM SCENE: Cooling
script
.addScene(scene0)
.addScene(scene1)
.addScene(scene2)
.addScene(scene3)
.addScene(scene4)
.addScene(scene5)
.addScene(scene6);
return script;
}

View File

@ -534,6 +534,16 @@ cannery.hadron.6=To access the Core Component, you'll need to add one or more Ac
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
cannery.hadron.10=Nor is this coil segment required for purely linear accelerators
cannery.hadron.11=For circular accelerators, you will need to add corners to change the direction of the particle
cannery.hadron.12=The outside corner coils can be omitted entirely
cannery.hadron.13=The final part of our Accelerator is the Analysis Chamber, which is a 3x3x3 empty chamber surrounded by Analysis Chamber blocks
cannery.hadron.14=Your completed Particle Accelerator should look something like this!
cannery.hadron.math.0=Neodymium Coil Strength: 50
cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE
cannery.hadron.math.2=Starmetal Coil Strength: 1,000
cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE
chem.ARSENIC=Arsenic Extraction
chem.ASPHALT=Asphalt Production