mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
170 lines
7.1 KiB
Java
170 lines
7.1 KiB
Java
package com.hbm.wiaj.cannery;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import com.hbm.blocks.ModBlocks;
|
|
import com.hbm.inventory.fluid.Fluids;
|
|
import com.hbm.items.ModItems;
|
|
import com.hbm.main.ResourceManager;
|
|
import com.hbm.render.tileentity.RenderFENSU;
|
|
import com.hbm.tileentity.network.TileEntityPipeBaseNT;
|
|
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.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.ActorTileEntity;
|
|
import com.hbm.wiaj.actors.ITileActorRenderer;
|
|
import com.hbm.wiaj.actors.ActorFancyPanel.Orientation;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
public class CanneryCentrifuge {
|
|
|
|
public static JarScript createScript() {
|
|
WorldInAJar world = new WorldInAJar(9, 5, 5);
|
|
JarScript script = new JarScript(world);
|
|
|
|
JarScene scene0 = new JarScene(script);
|
|
|
|
scene0.add(new ActionSetZoom(2, 0));
|
|
|
|
for(int x = world.sizeX - 1; x >= 0 ; x--) {
|
|
for(int z = 0; z < world.sizeZ; z++) {
|
|
scene0.add(new ActionSetBlock(x, 0, z, Blocks.brick_block));
|
|
}
|
|
|
|
if(x == 7) {
|
|
scene0.add(new ActionSetTile(7, 1, 2, new Dummies.JarDummyConnector()));
|
|
scene0.add(new ActionSetBlock(7, 1, 2, ModBlocks.barrel_tcalloy));
|
|
}
|
|
|
|
if(x == 6) {
|
|
TileEntityPipeBaseNT duct = new TileEntityPipeBaseNT();
|
|
duct.setType(Fluids.UF6);
|
|
scene0.add(new ActionSetTile(6, 1, 2, duct));
|
|
scene0.add(new ActionSetBlock(6, 1, 2, ModBlocks.fluid_duct_neo, 0));
|
|
}
|
|
|
|
if(x == 5) {
|
|
scene0.add(new ActionSetTile(5, 1, 2, new Dummies.JarDummyConnector()));
|
|
NBTTagCompound cent = new NBTTagCompound();
|
|
cent.setDouble("x", 5);
|
|
cent.setDouble("y", 1);
|
|
cent.setDouble("z", 2);
|
|
cent.setInteger("rotation", 2);
|
|
scene0.add(new ActionCreateActor(0, new ActorTileEntity(new ActorGasCent(), cent)));
|
|
}
|
|
|
|
scene0.add(new ActionWait(2));
|
|
}
|
|
|
|
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -15, -50, new Object[][] {{"Gas centrifuges can be supplied with fluid "
|
|
+ "using regular fluid ducts."}}, 200)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.BOTTOM)));
|
|
|
|
scene0.add(new ActionWait(60));
|
|
scene0.add(new ActionRemoveActor(1));
|
|
|
|
JarScene scene1 = new JarScene(script);
|
|
|
|
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -15, 10, new Object[][] {{"Most recipes require multiple centrifuges. "
|
|
+ "The intermediate products cannot be transported via pipes."}}, 200)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.CENTER)));
|
|
|
|
scene1.add(new ActionWait(60));
|
|
scene1.add(new ActionRemoveActor(1));
|
|
|
|
scene1.add(new ActionSetZoom(4, 20));
|
|
|
|
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 40, new Object[][] {{"This side acts as a connector which "
|
|
+ "outputs the intermediate product into an adjecent centrifuge."}}, 150)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.LEFT)));
|
|
|
|
scene1.add(new ActionWait(60));
|
|
scene1.add(new ActionRemoveActor(1));
|
|
scene1.add(new ActionSetZoom(-2, 20));
|
|
scene1.add(new ActionWait(20));
|
|
|
|
NBTTagCompound c2 = new NBTTagCompound(); c2.setDouble("x", 4); c2.setDouble("y", 1); c2.setDouble("z", 2); c2.setInteger("rotation", 2);
|
|
scene1.add(new ActionCreateActor(1, new ActorTileEntity(new ActorGasCent(), c2)));
|
|
scene1.add(new ActionWait(10));
|
|
|
|
scene1.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{"Uranium hexafluoride can be processed with just "
|
|
+ "two centrifuges, this however will produce Uranium fuel and Uranium-238."}}, 200)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.CENTER)));
|
|
|
|
scene1.add(new ActionWait(100));
|
|
scene1.add(new ActionRemoveActor(2));
|
|
scene1.add(new ActionSetZoom(-2, 20));
|
|
|
|
scene1.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{"Fully processing it into Uranium-235 and Uranium-238 "
|
|
+ "requires a total of four centrifuges."}}, 200)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.CENTER)));
|
|
|
|
scene1.add(new ActionWait(60));
|
|
scene1.add(new ActionRemoveActor(2));
|
|
|
|
NBTTagCompound c3 = new NBTTagCompound(); c3.setDouble("x", 3); c3.setDouble("y", 1); c3.setDouble("z", 2); c3.setInteger("rotation", 2);
|
|
scene1.add(new ActionCreateActor(2, new ActorTileEntity(new ActorGasCent(), c3)));
|
|
scene1.add(new ActionWait(10));
|
|
NBTTagCompound c4 = new NBTTagCompound(); c4.setDouble("x", 2); c4.setDouble("y", 1); c4.setDouble("z", 2); c4.setInteger("rotation", 2);
|
|
scene1.add(new ActionCreateActor(3, new ActorTileEntity(new ActorGasCent(), c4)));
|
|
scene1.add(new ActionWait(10));
|
|
|
|
scene1.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{"Some recipes also require the centrifuge speed upgrade."}}, 200)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.CENTER)));
|
|
|
|
scene1.add(new ActionWait(60));
|
|
scene1.add(new ActionRemoveActor(4));
|
|
|
|
scene1.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 28, -30, new Object[][] {{new ItemStack(ModItems.upgrade_gc_speed)}}, 0)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.BOTTOM)));
|
|
|
|
scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 45, 35, new Object[][] {{" = ", new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235)}}, 0)
|
|
.setColors(0xFFFDCA88, 0xFFD57C4F, 0xFFAB4223, 0xff1A1F22).setOrientation(Orientation.LEFT)));
|
|
|
|
script.addScene(scene0).addScene(scene1);
|
|
return script;
|
|
}
|
|
|
|
public static class ActorGasCent implements ITileActorRenderer {
|
|
|
|
@Override
|
|
public void renderActor(int ticks, float interp, NBTTagCompound data) {
|
|
double x = data.getDouble("x");
|
|
double y = data.getDouble("y");
|
|
double z = data.getDouble("z");
|
|
int rotation = data.getInteger("rotation");
|
|
|
|
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
|
|
|
switch(rotation) {
|
|
case 3: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
|
case 5: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
|
case 2: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
|
case 4: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
|
}
|
|
|
|
ITileActorRenderer.bindTexture(ResourceManager.gascent_tex);
|
|
ResourceManager.gascent.renderPart("Centrifuge");
|
|
ResourceManager.gascent.renderPart("Flag");
|
|
|
|
GL11.glShadeModel(GL11.GL_FLAT);
|
|
}
|
|
|
|
@Override
|
|
public void updateActor(int ticks, NBTTagCompound data) { }
|
|
}
|
|
}
|