mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Add presentation for the Schottky Particle Diode
This commit is contained in:
parent
d65469e1c0
commit
df7808b48e
@ -32,6 +32,13 @@ public class CanneryHadron extends CanneryBase {
|
||||
public String getName() {
|
||||
return "cannery.hadron";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CanneryBase[] seeAlso() {
|
||||
return new CanneryBase[] {
|
||||
new CannerySchottky()
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public JarScript createScript() {
|
||||
|
||||
250
src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java
Normal file
250
src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java
Normal file
@ -0,0 +1,250 @@
|
||||
package com.hbm.wiaj.cannery;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.machine.TileEntityHadronDiode;
|
||||
import com.hbm.util.I18nUtil;
|
||||
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.ActionRemoveActor;
|
||||
import com.hbm.wiaj.actions.ActionRotateBy;
|
||||
import com.hbm.wiaj.actions.ActionSetBlock;
|
||||
import com.hbm.wiaj.actions.ActionSetTile;
|
||||
import com.hbm.wiaj.actions.ActionSetZoom;
|
||||
import com.hbm.wiaj.actions.ActionWait;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel.Orientation;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class CannerySchottky extends CanneryBase {
|
||||
|
||||
@Override
|
||||
public ItemStack getIcon() {
|
||||
return new ItemStack(ModBlocks.hadron_diode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "cannery.schottky";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CanneryBase[] seeAlso() {
|
||||
return new CanneryBase[] {
|
||||
new CanneryHadron()
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public JarScript createScript() {
|
||||
WorldInAJar world = new WorldInAJar(5, 5, 5);
|
||||
JarScript script = new JarScript(world);
|
||||
|
||||
|
||||
// FIRST SCENE: Show and explain the diode
|
||||
JarScene scene0 = new JarScene(script);
|
||||
scene0.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode()));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.hadron_diode));
|
||||
|
||||
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.0")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(100));
|
||||
scene0.add(new ActionRemoveActor(1));
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.1")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(1));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.RIGHT)));
|
||||
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionRemoveActor(2));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; }}));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.2")}}, 100)
|
||||
.setColors(colorCopper).setOrientation(Orientation.RIGHT)));
|
||||
|
||||
scene0.add(new ActionWait(60));
|
||||
scene0.add(new ActionRemoveActor(3));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
scene0.add(new ActionRemoveActor(4));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.IN; }}));
|
||||
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
scene0.add(new ActionRemoveActor(5));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; }}));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.3")}}, 100)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene0.add(new ActionWait(60));
|
||||
scene0.add(new ActionRemoveActor(6));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
|
||||
// SECOND SCENE: Add another entrance and exit
|
||||
JarScene scene1 = new JarScene(script);
|
||||
scene1.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene1.add(new ActionRotateBy(180, 0, 10));
|
||||
|
||||
scene1.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.RIGHT)));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
scene1.add(new ActionRemoveActor(2));
|
||||
|
||||
scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; }}));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
scene1.add(new ActionRemoveActor(4));
|
||||
|
||||
scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.IN; }}));
|
||||
|
||||
scene1.add(new ActionWait(5));
|
||||
|
||||
scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
scene1.add(new ActionRemoveActor(5));
|
||||
|
||||
scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.OUT; }}));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionRotateBy(-180, 0, 10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.4")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.5")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.6")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.7")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.8")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
|
||||
|
||||
// THIRD SCENE: Correctly enclose the diode
|
||||
JarScene scene2 = new JarScene(script);
|
||||
scene2.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene2.add(new ActionSetZoom(-2, 10));
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
if((x == 0 || x == 4) && (z == 0 || z == 4)) continue;
|
||||
scene2.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
scene2.add(new ActionSetBlock(x, 1, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
if(x == 2 || z == 2) continue;
|
||||
scene2.add(new ActionSetBlock(x, 2, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
scene2.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.9")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
|
||||
scene2.add(new ActionRotateBy(360, 0, 100));
|
||||
scene2.add(new ActionRemoveActor(1));
|
||||
scene2.add(new ActionWait(10));
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
scene2.add(new ActionSetBlock(x, 3, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
if((x == 0 || x == 4) && (z == 0 || z == 4)) continue;
|
||||
scene2.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
script
|
||||
.addScene(scene0)
|
||||
.addScene(scene1)
|
||||
.addScene(scene2);
|
||||
|
||||
return script;
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,6 +24,7 @@ public class Jars {
|
||||
canneries.put(new ComparableStack(ModBlocks.foundry_channel), new CanneryFoundryChannel());
|
||||
canneries.put(new ComparableStack(ModBlocks.machine_crucible), new CanneryCrucible());
|
||||
canneries.put(new ComparableStack(ModBlocks.hadron_core), new CanneryHadron());
|
||||
canneries.put(new ComparableStack(ModBlocks.hadron_diode), new CannerySchottky());
|
||||
|
||||
canneries.put(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CanneryWillow());
|
||||
canneries.put(new ComparableStack(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0)), new CanneryWillow());
|
||||
|
||||
@ -545,6 +545,18 @@ 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
|
||||
|
||||
cannery.schottky=Schottky Particle Diode
|
||||
cannery.schottky.0=This is a Schottky Particle Diode. It can allow for more complex particle accelerator designs and save on electricity
|
||||
cannery.schottky.1=By default it blocks all particles and must be configured with a Screwdriver
|
||||
cannery.schottky.2=This face will now accept entering particles
|
||||
cannery.schottky.3=And this face will eject particles that enter
|
||||
cannery.schottky.4=The diode now has two exits, and will now behave in a quantum manner, creating virtual particles for each exit
|
||||
cannery.schottky.5=Once all the virtual particles have reached an Analysis Chamber, the particle with the lowest momentum required for the current recipe is chosen
|
||||
cannery.schottky.6=The chosen particle undergoes a wavefunction collapse and is made real, consuming only the power that the collapsing particle requires
|
||||
cannery.schottky.7=If any virtual particles encounter any malformed segments, all virtual particles will be discarded and the erroring particle will be collapsed instead
|
||||
cannery.schottky.8=Note that virtual particles will never use the same Diode exit twice. Infinite loops will fail, but re-entering a Diode is otherwise fine
|
||||
cannery.schottky.9=Your Schottky Particle Diode should be properly enclosed, with free paths for each intersection exit
|
||||
|
||||
chem.ARSENIC=Arsenic Extraction
|
||||
chem.ASPHALT=Asphalt Production
|
||||
chem.BAKELITE=Bakelite Production
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user