From 385cf34f0727987d7656f57d1a36ef6c78796731 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Mon, 13 Apr 2020 13:10:21 +0200 Subject: [PATCH] soyuz launcher progress --- assets/hbm/textures/items/soyuz.png | Bin 0 -> 245 bytes .../container/ContainerSoyuzLauncher.java | 4 +- com/hbm/inventory/gui/GUISoyuzLauncher.java | 50 ++--- com/hbm/items/ModItems.java | 3 + .../render/tileentity/RendererObjTester.java | 9 +- .../machine/TileEntitySoyuzLauncher.java | 176 ++++-------------- 6 files changed, 78 insertions(+), 164 deletions(-) create mode 100644 assets/hbm/textures/items/soyuz.png diff --git a/assets/hbm/textures/items/soyuz.png b/assets/hbm/textures/items/soyuz.png new file mode 100644 index 0000000000000000000000000000000000000000..ea5988aeea06ab8146548cf6d49efca4c802a902 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfM=smulmt*$fX$Ep7u0BeUkM{HM{IP$} z|HpY!PN@e+Vr_@Y>7_S&%yM_Ho1`M$rZ_vrXvw{-Y5eE*qvQs<--$7Ywu@_Rz2 zsn*_qJV*IhN3q^}^LxL)KYhSZxxTvbvKLm*zMgc%CKsc*0MA0vPUkL rRnBdxe{Eo$9Qka?)wB~w;#RTeZ0zk_Fvs&I(A^B4u6{1-oD!M x && guiTop + 98 < y && guiTop + 98 + 18 >= y) { + if(guiLeft + 88 <= x && guiLeft + 88 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, PartSize.SIZE_10.ordinal(), 0)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, 0, 0)); } - if(guiLeft + 25 <= x && guiLeft + 25 + 18 > x && guiTop + 98 < y && guiTop + 98 + 18 >= y) { + if(guiLeft + 88 <= x && guiLeft + 88 + 18 > x && guiTop + 35 < y && guiTop + 35 + 18 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, PartSize.SIZE_15.ordinal(), 0)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, 1, 0)); } - - if(guiLeft + 43 <= x && guiLeft + 43 + 18 > x && guiTop + 98 < y && guiTop + 98 + 18 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(launcher.xCoord, launcher.yCoord, launcher.zCoord, PartSize.SIZE_20.ordinal(), 0)); - }*/ } @Override @@ -78,5 +69,20 @@ public class GUISoyuzLauncher extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int)launcher.getPowerScaled(34); + drawTexturedModalRect(guiLeft + 49, guiTop + 106 - i, 194, 52 - i, 6, i); + + drawTexturedModalRect(guiLeft + 61, guiTop + 17, 176 + (launcher.hasRocket() ? 18 : 0), 0, 18, 18); + int j = launcher.designator(); + + if(j > 0) + drawTexturedModalRect(guiLeft + 61, guiTop + 35, 192 + (j - 1), 0, 18, 18); + + Minecraft.getMinecraft().getTextureManager().bindTexture(launcher.tanks[0].getSheet()); + launcher.tanks[0].renderTank(this, guiLeft + 8, guiTop + 88, launcher.tanks[0].getTankType().textureX() * FluidTank.x, launcher.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + + Minecraft.getMinecraft().getTextureManager().bindTexture(launcher.tanks[1].getSheet()); + launcher.tanks[1].renderTank(this, guiLeft + 26, guiTop + 88, launcher.tanks[1].getTankType().textureX() * FluidTank.x, launcher.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 1b699a433..a43c18d8d 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -1024,6 +1024,7 @@ public class ModItems { public static Item missile_custom; public static Item missile_carrier; + public static Item missile_soyuz; public static Item sat_mapper; public static Item sat_scanner; public static Item sat_radar; @@ -2570,6 +2571,7 @@ public class ModItems { missile_schrabidium = new Item().setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); missile_emp = new Item().setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); + missile_soyuz = new Item().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); sat_mapper = new ItemSatChip().setUnlocalizedName("sat_mapper").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_mapper"); sat_scanner = new ItemSatChip().setUnlocalizedName("sat_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_scanner"); @@ -4436,6 +4438,7 @@ public class ModItems { GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); + GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName()); //Missile Parts diff --git a/com/hbm/render/tileentity/RendererObjTester.java b/com/hbm/render/tileentity/RendererObjTester.java index 05f6d6356..c7effaef9 100644 --- a/com/hbm/render/tileentity/RendererObjTester.java +++ b/com/hbm/render/tileentity/RendererObjTester.java @@ -3,8 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.render.util.DiamondPronter; -import com.hbm.render.util.EnumSymbol; +import com.hbm.render.util.SoyuzPronter; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -30,7 +29,7 @@ public class RendererObjTester extends TileEntitySpecialRenderer { public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); /*switch(tileEntity.getBlockMetadata()) { @@ -105,13 +104,13 @@ public class RendererObjTester extends TileEntitySpecialRenderer { bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/ModelCalStock.png"));*/ //stock.renderAll(1F/16F); - //SoyuzPronter.prontSoyuz(); + SoyuzPronter.prontSoyuz(); //TomPronter.prontTom(); //BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F); //BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F); //BeamPronter.prontHelix(Vec3.createVectorHelper(0, 5, 0), 0.5, 0.5, 0.5, EnumWaveType.SPIRAL, EnumBeamType.LINE, 0x0000ff, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25 + 180, 25, 0.25F); - DiamondPronter.pront(1, 2, 3, EnumSymbol.OXIDIZER); + //DiamondPronter.pront(1, 2, 3, EnumSymbol.OXIDIZER); GL11.glPopMatrix(); } diff --git a/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index d6b82b955..644d7c380 100644 --- a/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -3,21 +3,20 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; +import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.TileEntityMachineBase; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -25,13 +24,12 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInventory, IConsumer, IFluidContainer, IFluidAcceptor { - - private ItemStack slots[]; +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IConsumer, IFluidContainer, IFluidAcceptor { public long power; - public static final long maxPower = 100000; + public static final long maxPower = 1000000; public FluidTank[] tanks; + public byte mode; public MissileStruct load; @@ -40,104 +38,15 @@ public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInvento private String customName; public TileEntitySoyuzLauncher() { - slots = new ItemStack[27]; + super(27); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(FluidType.KEROSENE, 100000, 0); - tanks[1] = new FluidTank(FluidType.ACID, 100000, 1); + tanks[0] = new FluidTank(FluidType.KEROSENE, 128000, 0); + tanks[1] = new FluidTank(FluidType.ACID, 128000, 1); } @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.launchTable"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; + public String getName() { + return "container.soyuzLauncher"; } @Override @@ -145,32 +54,42 @@ public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInvento if (!worldObj.isRemote) { - tanks[0].loadTank(2, 3, slots); - tanks[1].loadTank(2, 3, slots); + tanks[0].loadTank(4, 5, slots); + tanks[1].loadTank(6, 7, slots); for (int i = 0; i < 2; i++) tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); power = Library.chargeTEFromItems(slots, 5, power, maxPower); - PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); - - } else { - - List entities = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); - - for(Entity e : entities) { - - if(e instanceof EntityMissileCustom) { - - for(int i = 0; i < 15; i++) - MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "largelaunchsmoke", null); - - break; - } - } + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setByte("mode", mode); + networkPack(data, 50); } } + + public void networkUnpack(NBTTagCompound data) { + power = data.getLong("power"); + mode = data.getByte("mode"); + } + + public long getPowerScaled(long i) { + return (power * i) / maxPower; + } + + public boolean hasRocket() { + return slots[0] != null && slots[0].getItem() == ModItems.missile_soyuz; + } + + public int designator() { + + if(mode == 0) + return 0; + if(slots[1] != null && (slots[1].getItem() == ModItems.designator || slots[1].getItem() == ModItems.designator_range || slots[1].getItem() == ModItems.designator_manual) && slots[1].hasTagCompound()) + return 2; + return 1; + } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -180,6 +99,7 @@ public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInvento tanks[0].readFromNBT(nbt, "fuel"); tanks[1].readFromNBT(nbt, "oxidizer"); power = nbt.getLong("power"); + mode = nbt.getByte("mode"); slots = new ItemStack[getSizeInventory()]; @@ -201,6 +121,7 @@ public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInvento tanks[0].writeToNBT(nbt, "fuel"); tanks[1].writeToNBT(nbt, "oxidizer"); nbt.setLong("power", power); + nbt.setByte("mode", mode); for (int i = 0; i < slots.length; i++) { if (slots[i] != null) { @@ -213,21 +134,6 @@ public class TileEntitySoyuzLauncher extends TileEntity implements ISidedInvento nbt.setTag("items", list); } - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return access; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - @Override public int getMaxFluidFill(FluidType type) { if (type.name().equals(tanks[0].getTankType().name()))