GUI stuff, fluid API for plasma heater, boxduct inv rendering

This commit is contained in:
Boblet 2022-11-25 14:28:29 +01:00
parent f02232b079
commit 1ab40869b0
28 changed files with 436 additions and 152 deletions

View File

@ -31,13 +31,13 @@ import net.minecraftforge.common.util.ForgeDirection;
public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOverlay {
@SideOnly(Side.CLIENT) protected IIcon[] iconStraight;
@SideOnly(Side.CLIENT) protected IIcon[] iconEnd;
@SideOnly(Side.CLIENT) protected IIcon[] iconCurveTL;
@SideOnly(Side.CLIENT) protected IIcon[] iconCurveTR;
@SideOnly(Side.CLIENT) protected IIcon[] iconCurveBL;
@SideOnly(Side.CLIENT) protected IIcon[] iconCurveBR;
@SideOnly(Side.CLIENT) protected IIcon[] iconJunction;
@SideOnly(Side.CLIENT) public IIcon[] iconStraight;
@SideOnly(Side.CLIENT) public IIcon[] iconEnd;
@SideOnly(Side.CLIENT) public IIcon[] iconCurveTL;
@SideOnly(Side.CLIENT) public IIcon[] iconCurveTR;
@SideOnly(Side.CLIENT) public IIcon[] iconCurveBL;
@SideOnly(Side.CLIENT) public IIcon[] iconCurveBR;
@SideOnly(Side.CLIENT) public IIcon[] iconJunction;
private static final String[] materials = new String[] { "silver", "copper", "white" };

View File

@ -1,14 +1,22 @@
package com.hbm.blocks.network;
import com.hbm.inventory.gui.GUIScreenRadioTorch;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.network.TileEntityRadioTorchBase;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public abstract class RadioTorchBase extends BlockContainer {
public abstract class RadioTorchBase extends BlockContainer implements IGUIProvider {
public RadioTorchBase() {
super(Material.circuits);
@ -41,4 +49,17 @@ public abstract class RadioTorchBase extends BlockContainer {
public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) {
return side;
}
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; }
@Override
@SideOnly(Side.CLIENT)
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileEntityRadioTorchBase)
return new GUIScreenRadioTorch((TileEntityRadioTorchBase) te);
return null;
}
}

View File

@ -373,4 +373,9 @@ public class GUIAnvil extends GuiContainer {
super.keyTyped(c, key);
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -116,4 +116,9 @@ public class GUICoreEmitter extends GuiInfoContainer {
super.keyTyped(p_73869_1_, p_73869_2_);
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -99,4 +99,9 @@ public class GUICoreStabilizer extends GuiInfoContainer {
super.keyTyped(p_73869_1_, p_73869_2_);
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -114,4 +114,9 @@ public class GUINukeFstbmb extends GuiInfoContainer {
super.keyTyped(p_73869_1_, p_73869_2_);
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -376,4 +376,9 @@ public class GUIRBMKConsole extends GuiScreen {
public boolean doesGuiPauseGame() {
return false;
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -170,4 +170,9 @@ public class GUIRBMKControlAuto extends GuiInfoContainer {
super.keyTyped(c, i);
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -222,4 +222,9 @@ public class GUIRadioRec extends GuiInfoContainer {
}
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -175,4 +175,9 @@ public class GUIReactorControl extends GuiInfoContainer {
super.keyTyped(c, i);
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -166,4 +166,9 @@ public class GUIReactorResearch extends GuiInfoContainer {
super.keyTyped(c, i);
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -180,4 +180,9 @@ public class GUIScreenFluid extends GuiScreen {
}
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -0,0 +1,134 @@
package com.hbm.inventory.gui;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.network.TileEntityRadioTorchBase;
import com.hbm.tileentity.network.TileEntityRadioTorchSender;
import com.hbm.util.I18nUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.util.ResourceLocation;
public class GUIScreenRadioTorch extends GuiScreen {
protected ResourceLocation texture;
protected static final ResourceLocation textureSender = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rtty_sender.png");
protected static final ResourceLocation textureReceiver = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rtty_receiver.png");
protected TileEntityRadioTorchBase radio;
protected String title = "";
protected int xSize = 256;
protected int ySize = 204;
protected int guiLeft;
protected int guiTop;
protected GuiTextField frequency;
protected GuiTextField[] remap;
public GUIScreenRadioTorch(TileEntityRadioTorchBase radio) {
this.radio = radio;
if(radio instanceof TileEntityRadioTorchSender) {
this.texture = textureSender;
this.title = "container.rttySender";
} else {
this.texture = textureReceiver;
this.title = "container.rttyReceiver";
}
}
@Override
public void initGui() {
super.initGui();
this.guiLeft = (this.width - this.xSize) / 2;
this.guiTop = (this.height - this.ySize) / 2;
Keyboard.enableRepeatEvents(true);
int oX = 2;
int oY = 2;
int in = radio instanceof TileEntityRadioTorchSender ? 18 : 0;
this.frequency = new GuiTextField(this.fontRendererObj, guiLeft + 25 + oX, guiTop + 17 + oY, 90, 14);
this.frequency.setTextColor(0x00ff00);
this.frequency.setDisabledTextColour(0x00ff00);
this.frequency.setEnableBackgroundDrawing(false);
this.frequency.setMaxStringLength(25);
this.frequency.setText(radio.channel == null ? "" : radio.channel);
this.remap = new GuiTextField[16];
for(int i = 0; i < 16; i++) {
this.remap[i] = new GuiTextField(this.fontRendererObj, guiLeft + 7 + (130 * (i / 8)) + oX + in, guiTop + 53 + (18 * (i % 8)) + oY, 50, 14);
this.remap[i].setTextColor(0x00ff00);
this.remap[i].setDisabledTextColour(0x00ff00);
this.remap[i].setEnableBackgroundDrawing(false);
this.remap[i].setMaxStringLength(25);
this.remap[i].setText(radio.mapping[i] == null ? "" : radio.mapping[i]);
}
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
this.drawDefaultBackground();
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
GL11.glDisable(GL11.GL_LIGHTING);
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
GL11.glEnable(GL11.GL_LIGHTING);
}
private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
String name = I18nUtil.resolveKey(this.title);
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
}
private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
if(radio.customMap) {
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
for(int j = 0; j < 16; j++) {
this.remap[j].drawTextBox();
}
} else {
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, 35);
drawTexturedModalRect(guiLeft, guiTop + 35, 0, 197, xSize, 7);
}
this.frequency.drawTextBox();
}
@Override
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
this.frequency.mouseClicked(x, y, i);
if(radio.customMap) {
for(int j = 0; j < 16; j++) this.remap[j].mouseClicked(x, y, i);
}
}
@Override
protected void keyTyped(char c, int i) {
if(this.frequency.textboxKeyTyped(c, i))
return;
if(radio.customMap) {
for(int j = 0; j < 16; j++) if(this.remap[j].textboxKeyTyped(c, i)) return;
}
super.keyTyped(c, i);
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -20,113 +20,105 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIScreenSatCoord extends GuiScreen {
protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/satellites/gui_sat_coord.png");
protected int xSize = 176;
protected int ySize = 126;
protected int guiLeft;
protected int guiTop;
private final EntityPlayer player;
private GuiTextField xField;
private GuiTextField yField;
private GuiTextField zField;
public GUIScreenSatCoord(EntityPlayer player) {
this.player = player;
}
public void initGui()
{
super.initGui();
this.guiLeft = (this.width - this.xSize) / 2;
this.guiTop = (this.height - this.ySize) / 2;
protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/satellites/gui_sat_coord.png");
protected int xSize = 176;
protected int ySize = 126;
protected int guiLeft;
protected int guiTop;
private final EntityPlayer player;
Keyboard.enableRepeatEvents(true);
this.xField = new GuiTextField(this.fontRendererObj, guiLeft + 66, guiTop + 21, 48, 12);
this.xField.setTextColor(-1);
this.xField.setDisabledTextColour(-1);
this.xField.setEnableBackgroundDrawing(false);
this.xField.setMaxStringLength(7);
this.yField = new GuiTextField(this.fontRendererObj, guiLeft + 66, guiTop + 56, 48, 12);
this.yField.setTextColor(-1);
this.yField.setDisabledTextColour(-1);
this.yField.setEnableBackgroundDrawing(false);
this.yField.setMaxStringLength(7);
this.zField = new GuiTextField(this.fontRendererObj, guiLeft + 66, guiTop + 92, 48, 12);
this.zField.setTextColor(-1);
this.zField.setDisabledTextColour(-1);
this.zField.setEnableBackgroundDrawing(false);
this.zField.setMaxStringLength(7);
}
protected void mouseClicked(int i, int j, int k)
{
super.mouseClicked(i, j, k);
if(ItemSatInterface.currentSat == null)
return;
this.xField.mouseClicked(i, j, k);
if(ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y)) this.yField.mouseClicked(i, j, k);
this.zField.mouseClicked(i, j, k);
private GuiTextField xField;
private GuiTextField yField;
private GuiTextField zField;
if(i >= this.guiLeft + 133 && i < this.guiLeft + 133 + 18 && j >= this.guiTop + 52 && j < this.guiTop + 52 + 18 && player != null) {
if(NumberUtils.isNumber(xField.getText()) && NumberUtils.isNumber(zField.getText())) {
public GUIScreenSatCoord(EntityPlayer player) {
this.player = player;
}
public void initGui() {
super.initGui();
this.guiLeft = (this.width - this.xSize) / 2;
this.guiTop = (this.height - this.ySize) / 2;
Keyboard.enableRepeatEvents(true);
this.xField = new GuiTextField(this.fontRendererObj, guiLeft + 66, guiTop + 21, 48, 12);
this.xField.setTextColor(-1);
this.xField.setDisabledTextColour(-1);
this.xField.setEnableBackgroundDrawing(false);
this.xField.setMaxStringLength(7);
this.yField = new GuiTextField(this.fontRendererObj, guiLeft + 66, guiTop + 56, 48, 12);
this.yField.setTextColor(-1);
this.yField.setDisabledTextColour(-1);
this.yField.setEnableBackgroundDrawing(false);
this.yField.setMaxStringLength(7);
this.zField = new GuiTextField(this.fontRendererObj, guiLeft + 66, guiTop + 92, 48, 12);
this.zField.setTextColor(-1);
this.zField.setDisabledTextColour(-1);
this.zField.setEnableBackgroundDrawing(false);
this.zField.setMaxStringLength(7);
}
protected void mouseClicked(int i, int j, int k) {
super.mouseClicked(i, j, k);
if(ItemSatInterface.currentSat == null)
return;
this.xField.mouseClicked(i, j, k);
if(ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y))
this.yField.mouseClicked(i, j, k);
this.zField.mouseClicked(i, j, k);
if(i >= this.guiLeft + 133 && i < this.guiLeft + 133 + 18 && j >= this.guiTop + 52 && j < this.guiTop + 52 + 18 && player != null) {
if(NumberUtils.isNumber(xField.getText()) && NumberUtils.isNumber(zField.getText())) {
if(ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y)) {
if(NumberUtils.isNumber(yField.getText())) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBleep"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new SatCoordPacket((int) Double.parseDouble(xField.getText()), (int) Double.parseDouble(yField.getText()),
(int) Double.parseDouble(zField.getText()), ISatChip.getFreqS(player.getHeldItem())));
this.mc.thePlayer.closeScreen();
}
} else {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBleep"), 1.0F));
PacketDispatcher.wrapper
.sendToServer(new SatCoordPacket((int) Double.parseDouble(xField.getText()), 0, (int) Double.parseDouble(zField.getText()), ISatChip.getFreqS(player.getHeldItem())));
this.mc.thePlayer.closeScreen();
}
}
}
}
public void drawScreen(int mouseX, int mouseY, float f) {
this.drawDefaultBackground();
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_LIGHTING);
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
GL11.glEnable(GL11.GL_LIGHTING);
}
if(ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y)) {
if(NumberUtils.isNumber(yField.getText())) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBleep"), 1.0F));
PacketDispatcher.wrapper.sendToServer(
new SatCoordPacket(
(int)Double.parseDouble(xField.getText()),
(int)Double.parseDouble(yField.getText()),
(int)Double.parseDouble(zField.getText()),
ISatChip.getFreqS(player.getHeldItem())));
this.mc.thePlayer.closeScreen();
}
} else {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBleep"), 1.0F));
PacketDispatcher.wrapper.sendToServer(
new SatCoordPacket(
(int)Double.parseDouble(xField.getText()),
0,
(int)Double.parseDouble(zField.getText()),
ISatChip.getFreqS(player.getHeldItem())));
this.mc.thePlayer.closeScreen();
}
}
}
}
public void drawScreen(int mouseX, int mouseY, float f) {
this.drawDefaultBackground();
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_LIGHTING);
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
GL11.glEnable(GL11.GL_LIGHTING);
}
@Override
public boolean doesGuiPauseGame() {
return false;
}
protected void drawGuiContainerForegroundLayer(int i, int j) {
this.xField.drawTextBox();
if(ItemSatInterface.currentSat != null && ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y)) this.yField.drawTextBox();
this.zField.drawTextBox();
this.xField.drawTextBox();
if(ItemSatInterface.currentSat != null && ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y))
this.yField.drawTextBox();
this.zField.drawTextBox();
}
protected void drawGuiContainerBackgroundLayer(float f, int i, int j) {
@ -142,37 +134,40 @@ public class GUIScreenSatCoord extends GuiScreen {
if(zField.isFocused())
drawTexturedModalRect(guiLeft + 61, guiTop + 88, 0, 126, 54, 18);
if(ItemSatInterface.currentSat != null) {
if(!ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y))
drawTexturedModalRect(guiLeft + 61, guiTop + 52, 0, 144, 54, 18);
drawTexturedModalRect(guiLeft + 120, guiTop + 17, 194, 0, 7, 7);
if(ItemSatInterface.currentSat.satIface == Interfaces.SAT_COORD) {
drawTexturedModalRect(guiLeft + 120, guiTop + 25, 194, 0, 7, 7);
}
}
}
protected void keyTyped(char p_73869_1_, int p_73869_2_) {
if (this.xField.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
} else if (ItemSatInterface.currentSat != null && ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y) && this.yField.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
} else if (this.zField.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
} else {
super.keyTyped(p_73869_1_, p_73869_2_);
}
if (p_73869_2_ == 1 || p_73869_2_ == this.mc.gameSettings.keyBindInventory.getKeyCode())
{
this.mc.thePlayer.closeScreen();
}
}
protected void keyTyped(char p_73869_1_, int p_73869_2_) {
if(this.xField.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
} else if(ItemSatInterface.currentSat != null && ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y) && this.yField.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
} else if(this.zField.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
} else {
super.keyTyped(p_73869_1_, p_73869_2_);
}
if(p_73869_2_ == 1 || p_73869_2_ == this.mc.gameSettings.keyBindInventory.getKeyCode()) {
this.mc.thePlayer.closeScreen();
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -353,4 +353,9 @@ public class GUIScreenTemplateFolder extends GuiScreen {
}
}
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
}

View File

@ -299,6 +299,11 @@ public abstract class GUITurretBase extends GuiInfoContainer {
return names.size();
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
protected void keyTyped(char p_73869_1_, int p_73869_2_) {

View File

@ -178,6 +178,15 @@ public class AnvilRecipes {
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_titanium))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(W.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_tungsten))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
for(int i = 0; i < 15; i += 3) {
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(IRON.plate(), 1), new AnvilOutput(new ItemStack(ModBlocks.fluid_duct_box, 1, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate(), 1), new AnvilOutput(new ItemStack(ModBlocks.fluid_duct_box, 1, i + 1))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.plate(), 1), new AnvilOutput(new ItemStack(ModBlocks.fluid_duct_box, 1, i + 2))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(2).setOverlay(OverlayType.RECYCLING));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i + 1), new AnvilOutput(new ItemStack(ModItems.plate_copper))).setTier(2).setOverlay(OverlayType.RECYCLING));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i + 2), new AnvilOutput(new ItemStack(ModItems.plate_aluminium))).setTier(2).setOverlay(OverlayType.RECYCLING));
}
constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModBlocks.depth_brick)},
new AnvilOutput(new ItemStack(ModBlocks.depth_dnt))).setTier(1916169));

View File

@ -5,7 +5,7 @@ import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.tileentity.conductor.TileEntityFluidDuct;
import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -120,10 +120,10 @@ public class ItemFluidDuct extends Item {
return false;
} else {
--stack.stackSize;
world.setBlock(x, y, z, ModBlocks.fluid_duct);
world.setBlock(x, y, z, ModBlocks.fluid_duct_neo);
if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) {
((TileEntityFluidDuct) world.getTileEntity(x, y, z)).setType(Fluids.fromID(stack.getItemDamage()));
if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuctSimple) {
((TileEntityFluidDuctSimple) world.getTileEntity(x, y, z)).setType(Fluids.fromID(stack.getItemDamage()));
}
world.playSoundEffect(x, y, z, "hbm:block.pipePlaced", 1.0F, 0.65F + world.rand.nextFloat() * 0.2F);

View File

@ -598,7 +598,11 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.crystal_virus, 1), new Object[] { "STS", "THT", "STS", 'S', ModItems.particle_strange, 'T', W.dust(), 'H', ModItems.crystal_horn });
addRecipeAuto(new ItemStack(ModBlocks.crystal_pulsar, 32), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_uf6, 'T', AL.dust(), 'H', ModItems.crystal_charred });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " ", "SAS", 'S', STEEL.plate(), 'A', AL.plate() });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 0), new Object[] { "SAS", " ", "SAS", 'S', STEEL.plate(), 'A', AL.plate() });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 1), new Object[] { "IAI", " ", "IAI", 'I', IRON.plate(), 'A', AL.plate() });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 2), new Object[] { "ASA", " ", "ASA", 'S', STEEL.plate(), 'A', AL.plate() });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape });
addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() });
addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', "dye", 'B', "dye" });
addRecipeAuto(new ItemStack(ModItems.pellet_antimatter, 1), new Object[] { "###", "###", "###", '#', ModItems.cell_antimatter });
@ -686,20 +690,20 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(Items.slime_ball, 16), new Object[] { new ItemStack(Items.dye, 1, 15), new ItemStack(Items.dye, 1, 15), new ItemStack(Items.dye, 1, 15), new ItemStack(Items.dye, 1, 15), Fluids.SULFURIC_ACID.getDict(1000) });
for(int i = 1; i < Fluids.getAll().length; ++i) {
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModBlocks.fluid_duct, 1), new ItemStack(ModItems.fluid_identifier, 1, i) });
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModItems.fluid_identifier, 1, i) });
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8),
new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8),
new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModBlocks.fluid_duct, 8), new ItemStack(ModItems.fluid_identifier, 1, i) });
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1),
new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1),
new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModBlocks.fluid_duct_neo, 1), new ItemStack(ModItems.fluid_identifier, 1, i) });
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) });
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE),
new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE),
new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 8, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) });
addShapelessAuto(new ItemStack(ModItems.fluid_duct, 8, i), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE),
new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE),
new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.fluid_identifier, 1, i) });
}
addShapelessAuto(new ItemStack(ModBlocks.fluid_duct, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) });
addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) });
addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) });
addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) });
@ -712,7 +716,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', STEEL.plate(), 'C', ModBlocks.steel_scaffold });
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth });
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete });
addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 4), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.fluid_duct, 'C', ModBlocks.red_cable });
addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 4), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable });
addRecipeAuto(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', AL.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam });
addRecipeAuto(new ItemStack(ModItems.seg_15, 1), new Object[] { "PP", "SS", "BB", 'P', TI.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam });

View File

@ -1,5 +1,7 @@
package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.network.FluidDuctBox;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
@ -16,7 +18,42 @@ import net.minecraft.world.IBlockAccess;
public class RenderBoxDuct implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { }
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
FluidDuctBox duct = (FluidDuctBox) block;
int type = metadata % 3;
float lower = 0.125F;
float upper = 0.875F;
for(int i = 2; i < 13; i += 3) {
if(metadata > i) {
lower += 0.0625F;
upper -= 0.0625F;
}
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
renderer.setRenderBounds(lower, lower, 0.0F, upper, upper, 1.0F);
renderer.uvRotateNorth = 1;
renderer.uvRotateSouth = 2;
tessellator.startDrawingQuads();
tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, 0, 0, 0, duct.iconStraight[type]);
tessellator.setNormal(0F, -1F, 0F); renderer.renderFaceYNeg(block, 0, 0, 0, duct.iconStraight[type]);
tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, 0, 0, 0, duct.iconStraight[type]);
tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, 0, 0, 0, duct.iconStraight[type]);
tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, 0, 0, 0, duct.iconEnd[type]);
tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, 0, 0, 0, duct.iconEnd[type]);
tessellator.draw();
renderer.uvRotateNorth = 0;
renderer.uvRotateSouth = 0;
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
@ -173,7 +210,7 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler {
@Override
public boolean shouldRender3DInInventory(int modelId) {
return false;
return true;
}
@Override

View File

@ -14,6 +14,7 @@ import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser;
import api.hbm.fluid.IFluidStandardReceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.nbt.NBTTagCompound;
@ -21,7 +22,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyUser {
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyUser, IFluidStandardReceiver {
public long power;
public static final long maxPower = 100000000;
@ -47,7 +48,8 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme
if(!worldObj.isRemote) {
this.updateConnections();
if(this.worldObj.getTotalWorldTime() % 20 == 0)
this.updateConnections();
/// START Managing all the internal stuff ///
power = Library.chargeTEFromItems(slots, 0, power, maxPower);
@ -135,6 +137,8 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme
for(int i = 1; i < 4; i++) {
for(int j = -1; j < 2; j++) {
this.trySubscribe(worldObj, xCoord + side.offsetX * j + dir.offsetX * 2, yCoord + i, zCoord + side.offsetZ * j + dir.offsetZ * 2, j < 0 ? ForgeDirection.DOWN : ForgeDirection.UP);
this.trySubscribe(tanks[0].getTankType(), worldObj, xCoord + side.offsetX * j + dir.offsetX * 2, yCoord + i, zCoord + side.offsetZ * j + dir.offsetZ * 2, j < 0 ? ForgeDirection.DOWN : ForgeDirection.UP);
this.trySubscribe(tanks[1].getTankType(), worldObj, xCoord + side.offsetX * j + dir.offsetX * 2, yCoord + i, zCoord + side.offsetZ * j + dir.offsetZ * 2, j < 0 ? ForgeDirection.DOWN : ForgeDirection.UP);
}
}
}
@ -145,9 +149,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme
private void updateType() {
//if(plasma.getFill() > 0)
// return;
List<FluidType> types = new ArrayList() {{ add(tanks[0].getTankType()); add(tanks[1].getTankType()); }};
if(types.contains(Fluids.DEUTERIUM) && types.contains(Fluids.TRITIUM)) {
@ -276,8 +277,17 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public FluidTank[] getAllTanks() {
return new FluidTank[] {tanks[0], tanks[1], plasma};
}
@Override
public FluidTank[] getReceivingTanks() {
return tanks;
}
}

View File

@ -4,6 +4,16 @@ import net.minecraft.tileentity.TileEntity;
public class TileEntityRadioTorchBase extends TileEntity {
/** channel we're broadcasting on/listening to */
public String channel = "";
/** previous redstone state for input/output, needed for state change detection */
protected int lastState = 0;
/** last update tick, needed for receivers listening for changes */
protected long lastUpdate;
/** switches state change mode to tick-based polling */
public boolean polling = false;
/** switches redstone passthrough to custom signal mapping */
public boolean customMap = false;
/** custom mapping */
public String[] mapping = new String[16];
}

View File

@ -3487,7 +3487,9 @@ tile.fireworks.message=Nachricht: %s
tile.fireworks.color=Farbe: %s
tile.flame_war.name=Flamewar aus der Box
tile.float_bomb.name=Schwebebombe
tile.fluid_duct.name=Universelles Flüssigkeitsrohr
tile.fluid_duct.name=Universelles Flüssigkeitsrohr (Veraltet)
tile.fluid_duct_box.name=Universelles Flüssigkeitsrohr (Boxrohr)
tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr
tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr
tile.foam_layer.name=Schaumdecke
tile.foundry_basin.name=Gussbecken

View File

@ -4015,7 +4015,9 @@ tile.fireworks.message=Message: %s
tile.fireworks.color=Color: %s
tile.flame_war.name=Flame War in a Box
tile.float_bomb.name=Levitation Bomb
tile.fluid_duct.name=Universal Fluid Duct
tile.fluid_duct.name=Universal Fluid Duct (Deprecated)
tile.fluid_duct_box.name=Universal Fluid Duct (Boxduct)
tile.fluid_duct_neo.name=Universal Fluid Duct
tile.fluid_duct_solid.name=Coated Universal Fluid Duct
tile.foam_layer.name=Foam layer
tile.foundry_basin.name=Foundry Basin

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 B

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB