diff --git a/changelog b/changelog index da40438bd..dc6b0c05c 100644 --- a/changelog +++ b/changelog @@ -29,6 +29,8 @@ * The small pylon now has a steel variant * Items in the battery socket which previously didn't show up in the socket's model are now rendered * Reduced the cost for the heavy stirling engine +* Removed the satellite interface item for being basically completely useless +* Updated the satellite ID manager texture and recipe ## Fixed * Fixed held block being placed when not sneaking when opening the cable diode's GUI diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java b/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java index 37819b5df..b359be51a 100644 --- a/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java +++ b/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java @@ -34,6 +34,10 @@ public interface IRORInteractive extends IRORInfo { return params; } + public static int parseInt(String val) { + return parseInt(val, Integer.MIN_VALUE, Integer.MAX_VALUE); + } + public static int parseInt(String val, int min, int max) { int result = 0; try { result = Integer.parseInt(val); } catch(Exception x) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineSatLink.java b/src/main/java/com/hbm/blocks/machine/MachineSatLink.java index 443778855..6b36e4a11 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSatLink.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSatLink.java @@ -19,6 +19,7 @@ import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; public class MachineSatLink extends BlockDummyable implements ILookOverlay { @@ -36,6 +37,17 @@ public class MachineSatLink extends BlockDummyable implements ILookOverlay { @Override public int[] getDimensions() { return new int[] {6, 0, 1, 0, 1, 0}; } @Override public int getOffset() { return 0; } + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ); + } + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/commands/CommandSatellites.java b/src/main/java/com/hbm/commands/CommandSatellites.java index 6b552b6f2..0f1723339 100644 --- a/src/main/java/com/hbm/commands/CommandSatellites.java +++ b/src/main/java/com/hbm/commands/CommandSatellites.java @@ -3,7 +3,7 @@ package com.hbm.commands; import com.hbm.items.ISatChip; import com.hbm.items.ModItems; import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.XSatelliteRegistry; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; @@ -38,7 +38,7 @@ public class CommandSatellites extends CommandBase { case "orbit": EntityPlayer player = getCommandSenderAsPlayer(sender); if(player.getHeldItem().getItem() instanceof ISatChip && player.getHeldItem().getItem() != ModItems.sat_chip) { - Satellite.orbit(player.worldObj, Satellite.getIDFromItem(player.getHeldItem().getItem()), ISatChip.getFreqS(player.getHeldItem()), player.posX, player.posY, player.posZ); + XSatelliteRegistry.orbit(player.worldObj, player.getHeldItem(), ISatChip.getFreqS(player.getHeldItem()), player.posX, player.posY, player.posZ); player.getHeldItem().stackSize -= 1; sender.addChatMessage(new ChatComponentTranslation("commands.satellite.satellite_orbited").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN))); } else { diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index e6085233b..bf1264841 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -3,7 +3,6 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; -import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; @@ -87,14 +86,6 @@ public class RodRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.nugget_lead, 24), new Object[] { new ItemStack(ModItems.rod_quad, 1, BreedingRodType.LEAD.ordinal()) }); addBreedingRod(U, ModItems.billet_uranium, BreedingRodType.URANIUM); - - //Pile fuel - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_uranium, 1), new Object[] { " U ", "PUP", " U ", 'P', IRON.plate(), 'U', U.billet() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_source, 1), new Object[] { " U ", "PUP", " U ", 'P', IRON.plate(), 'U', ModItems.billet_ra226be }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_boron, 1), new Object[] { " B ", " W ", " B ", 'B', B.ingot(), 'W', KEY_PLANKS }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.pile_rod_lithium, 1), new Object[] { ModItems.cell_empty, LI.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_detector, 1), new Object[] { " B ", "CM ", " B ", 'B', B.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_fuel_empty, 1), new Object[] { "ZRZ", "Z Z", "ZRZ", 'Z', ZR.ingot(), 'R', ModItems.rod_quad_empty }); addRBMKRod(U, ModItems.rbmk_fuel_ueu); addRBMKRod(ModItems.billet_uranium_fuel, ModItems.rbmk_fuel_meu); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index ae6341aad..e65363c1e 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -92,6 +92,7 @@ public class EntityMappings { addEntity(EntityBombletZeta.class, "entity_zeta", 1000); addEntity(EntityOrangeFX.class, "entity_agent_orange", 1000); addEntity(EntityDeathBlast.class, "entity_laser_blast", 1000); + addEntity(EntityOrbitalLaser.class, "entity_orbital_laser", 1000); addEntity(EntityBurningFOEQ.class, "entity_burning_foeq", 1000); addEntity(EntityFallingNuke.class, "entity_falling_bomb", 1000); addEntity(EntityBulletBaseNT.class, "entity_bullet_mk3", 250, false); diff --git a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java index 9d1a45f73..fed741c36 100644 --- a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java @@ -1,7 +1,5 @@ package com.hbm.entity.logic; -import com.hbm.entity.projectile.EntityBulletBaseNT; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.threading.PacketThreading; import com.hbm.packet.toclient.AuxParticlePacketNT; @@ -10,15 +8,14 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityDeathBlast extends Entity { public static final int maxAge = 60; - public EntityDeathBlast(World p_i1582_1_) { - super(p_i1582_1_); + public EntityDeathBlast(World world) { + super(world); this.ignoreFrustumCheck = true; } @@ -39,20 +36,6 @@ public class EntityDeathBlast extends Entity { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, 40, posX, posY, posZ)); - int count = 100; - for(int i = 0; i < count; i++) { - - Vec3 vec = Vec3.createVectorHelper(0.2, 0, 0); - vec.rotateAroundY((float)(2 * Math.PI * i / (float)count)); - - EntityBulletBaseNT laser = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); - laser.setPosition(posX, posY + 2, posZ); - laser.motionX = vec.xCoord; - laser.motionZ = vec.zCoord; - laser.motionY = -0.01; - worldObj.spawnEntityInWorld(laser); - } - NBTTagCompound data = new NBTTagCompound(); data.setString("type", "muke"); PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 250)); diff --git a/src/main/java/com/hbm/entity/logic/EntityOrbitalLaser.java b/src/main/java/com/hbm/entity/logic/EntityOrbitalLaser.java new file mode 100644 index 000000000..5be844472 --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityOrbitalLaser.java @@ -0,0 +1,68 @@ +package com.hbm.entity.logic; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.util.DamageResistanceHandler.DamageClass; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityOrbitalLaser extends Entity { + + public static final int maxAge = 5; + + public EntityOrbitalLaser(World world) { + super(world); + this.ignoreFrustumCheck = true; + } + + @Override + protected void entityInit() { } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + public void onUpdate() { + + if(this.ticksExisted >= maxAge && !worldObj.isRemote) this.setDead(); + } + + public void explode() { + + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 5F); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 1_000F).setupPiercing(50F, 0.5F).setDamageClass(DamageClass.LASER)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(15, 3.5F, 1.25F)); + vnt.explode(); + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + return 15728880; + } + + @Override + public float getBrightness(float p_70013_1_) { + return 1.0F; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntitySoyuz.java b/src/main/java/com/hbm/entity/missile/EntitySoyuz.java index 4561fd73d..4b0a5926c 100644 --- a/src/main/java/com/hbm/entity/missile/EntitySoyuz.java +++ b/src/main/java/com/hbm/entity/missile/EntitySoyuz.java @@ -7,7 +7,7 @@ import com.hbm.items.ISatChip; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.XSatelliteRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -113,10 +113,8 @@ public class EntitySoyuz extends Entity { } if(load.getItem() instanceof ISatChip) { - - int freq = ISatChip.getFreqS(load); - - Satellite.orbit(worldObj, Satellite.getIDFromItem(load.getItem()), freq, posX, posY, posZ); + int freq = ISatChip.getFreqS(load); + XSatelliteRegistry.orbit(worldObj, load, freq, posX, posY, posZ); } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSatLinker.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSatLinker.java index c6783fa0a..60e0954bf 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSatLinker.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSatLinker.java @@ -30,10 +30,10 @@ public class GUIMachineSatLinker extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); String[] chipText = I18nUtil.resolveKeyArray("desc.gui.satlinker.chip"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 12, guiTop + 28, 16, 16, guiLeft - 8, guiTop + 36 + 16, chipText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 12, guiTop + 28, 16, 16, guiLeft + 20, guiTop + 28 + 16, chipText); String[] randomText = I18nUtil.resolveKeyArray("desc.gui.satlinker.random"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 12, guiTop + 28 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, randomText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 12, guiTop + 28 + 16, 16, 16, guiLeft + 20, guiTop + 28 + 32, randomText); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java index e7f4fe2bb..4931be365 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSatCoord.java @@ -4,19 +4,18 @@ import org.apache.commons.lang3.math.NumberUtils; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; -import com.hbm.items.ISatChip; import com.hbm.items.tool.ItemSatInterface; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toserver.SatCoordPacket; -import com.hbm.saveddata.satellites.Satellite.CoordActions; -import com.hbm.saveddata.satellites.Satellite.Interfaces; +import com.hbm.packet.toserver.NBTItemControlPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIScreenSatCoord extends GuiScreen { @@ -27,14 +26,15 @@ public class GUIScreenSatCoord extends GuiScreen { protected int guiLeft; protected int guiTop; private final EntityPlayer player; + protected ItemStack device; private GuiTextField xField; private GuiTextField yField; private GuiTextField zField; public GUIScreenSatCoord(EntityPlayer player) { - this.player = player; + this.device = player.getHeldItem(); } public void initGui() { @@ -63,37 +63,24 @@ public class GUIScreenSatCoord extends GuiScreen { protected void mouseClicked(int i, int j, int k) { super.mouseClicked(i, j, k); - if(ItemSatInterface.currentSat == null) - return; + if(!device.hasTagCompound() || !device.stackTagCompound.getBoolean(ItemSatInterface.KEY_NBT_CONNECTED)) return; this.xField.mouseClicked(i, j, k); - if(ItemSatInterface.currentSat.coordAcs.contains(CoordActions.HAS_Y)) - this.yField.mouseClicked(i, j, k); + 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(); - } + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("x", (int) Double.parseDouble(xField.getText())); + data.setInteger("z", (int) Double.parseDouble(zField.getText())); + if(NumberUtils.isNumber(yField.getText())) data.setInteger("y", (int) Double.parseDouble(yField.getText())); + PacketDispatcher.wrapper.sendToServer(new NBTItemControlPacket(data)); + + this.mc.thePlayer.closeScreen(); } } } @@ -108,16 +95,10 @@ public class GUIScreenSatCoord extends GuiScreen { 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.yField.drawTextBox(); this.zField.drawTextBox(); } @@ -126,48 +107,34 @@ public class GUIScreenSatCoord extends GuiScreen { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(xField.isFocused()) - drawTexturedModalRect(guiLeft + 61, guiTop + 16, 0, 126, 54, 18); + if(xField.isFocused()) drawTexturedModalRect(guiLeft + 61, guiTop + 16, 0, 126, 54, 18); + if(yField.isFocused()) drawTexturedModalRect(guiLeft + 61, guiTop + 52, 0, 126, 54, 18); + if(zField.isFocused()) drawTexturedModalRect(guiLeft + 61, guiTop + 88, 0, 126, 54, 18); - if(yField.isFocused()) - drawTexturedModalRect(guiLeft + 61, guiTop + 52, 0, 126, 54, 18); - - 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); + if(device.hasTagCompound() && device.stackTagCompound.getBoolean(ItemSatInterface.KEY_NBT_CONNECTED)) { 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); - } + drawTexturedModalRect(guiLeft + 120, guiTop + 25, 194, 0, 7, 7); } } - protected void keyTyped(char p_73869_1_, int p_73869_2_) { + @Override + protected void keyTyped(char c, int k) { - 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(); - } + if(this.xField.textboxKeyTyped(c, k)) return; + if(this.yField.textboxKeyTyped(c, k)) return; + if(this.zField.textboxKeyTyped(c, k)) return; + + super.keyTyped(c, k); + } + @Override + public boolean doesGuiPauseGame() { + return false; } @Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); } - } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java deleted file mode 100644 index bba6b5b4f..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSatInterface.java +++ /dev/null @@ -1,330 +0,0 @@ -package com.hbm.inventory.gui; - -import java.util.Arrays; -import java.util.List; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.items.ISatChip; -import com.hbm.items.tool.ItemSatInterface; -import com.hbm.lib.RefStrings; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toserver.SatLaserPacket; -import com.hbm.saveddata.satellites.Satellite.InterfaceActions; -import com.hbm.saveddata.satellites.Satellite.Interfaces; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -public class GUIScreenSatInterface extends GuiScreen { - - protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/satellites/gui_sat_interface.png"); - protected int xSize = 216; - protected int ySize = 216; - protected int guiLeft; - protected int guiTop; - private final EntityPlayer player; - int x; - int z; - - public GUIScreenSatInterface(EntityPlayer player) { - - this.player = player; - } - - public void updateScreen() { - } - - protected void mouseClicked(int i, int j, int k) { - - if(ItemSatInterface.currentSat != null && ItemSatInterface.currentSat.ifaceAcs.contains(InterfaceActions.CAN_CLICK)) { - - if(i >= this.guiLeft + 8 && i < this.guiLeft + 208 && j >= this.guiTop + 8 && j < this.guiTop + 208 && player != null) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBleep"), 1.0F)); - - int x = this.x - guiLeft + i - 8 - 100; - int z = this.z - guiTop + j - 8 - 100; - PacketDispatcher.wrapper.sendToServer(new SatLaserPacket(x, z, ISatChip.getFreqS(player.getHeldItem()))); - } - } - } - - 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); - } - - public void initGui() - { - super.initGui(); - this.guiLeft = (this.width - this.xSize) / 2; - this.guiTop = (this.height - this.ySize) / 2; - - x = (int) player.posX; - z = (int) player.posZ; - } - - @Override - public boolean doesGuiPauseGame() { - return false; - } - - protected void drawGuiContainerForegroundLayer(int i, int j) { - - if(ItemSatInterface.currentSat != null && ItemSatInterface.currentSat.ifaceAcs.contains(InterfaceActions.SHOW_COORDS)) { - - if(i >= this.guiLeft + 8 && i < this.guiLeft + 208 && j >= this.guiTop + 8 && j < this.guiTop + 208 && player != null) { - - int x = this.x - guiLeft + i - 8 - 100; - int z = this.z - guiTop + j - 8 - 100; - func_146283_a(Arrays.asList(new String[] { x + " / " + z }), i, j); - } - } - } - - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(ItemSatInterface.currentSat == null) { - drawNotConnected(); - } else { - - if(ItemSatInterface.currentSat.satIface != Interfaces.SAT_PANEL) { - drawNoService(); - return; - } - - if(ItemSatInterface.currentSat.ifaceAcs.contains(InterfaceActions.HAS_MAP)) { - drawMap(); - } - if(ItemSatInterface.currentSat.ifaceAcs.contains(InterfaceActions.HAS_ORES)) { - drawScan(); - } - if(ItemSatInterface.currentSat.ifaceAcs.contains(InterfaceActions.HAS_RADAR)) { - drawRadar(); - } - } - } - - private int scanPos = 0; - private long lastMilli = 0; - - private void progresScan() { - - if(lastMilli + 25 < System.currentTimeMillis()) { - lastMilli = System.currentTimeMillis(); - scanPos++; - } - - if(scanPos >= 200) - scanPos -= 200; - } - - private int[][] map = new int[200][200]; - - private void drawMap() { - - World world = player.worldObj; - - for(int i = -100; i < 100; i++) { - int x = this.x + i; - int z = this.z + scanPos - 100; - int y = world.getHeightValue(x, z) - 1; - map[i + 100][scanPos] = world.getBlock(x, y, z).getMaterial().getMaterialMapColor().colorValue; - } - prontMap(); - progresScan(); - } - - private void drawScan() { - - World world = player.worldObj; - - for(int i = -100; i < 100; i++) { - int x = this.x + i; - int z = this.z + scanPos - 100; - - for(int j = 255; j >= 0; j--) { - int c = getColorFromBlock(new ItemStack(world.getBlock(x, j, z), 1, world.getBlockMetadata(x, j, z))); - - if(c != 0) { - map[i + 100][scanPos] = c; - break; - } - } - } - prontMap(); - progresScan(); - } - - private int getColorFromBlock(ItemStack stack) { - - if(stack == null || stack.getItem() == null/* || stack.getItemDamage() < 0*/) - return 0; - - if(MachineRecipes.mODE(stack, "oreCoal")) - return 0x333333; - if(MachineRecipes.mODE(stack, "oreIron")) - return 0xb2aa92; - if(MachineRecipes.mODE(stack, "oreGold")) - return 0xffe460; - if(MachineRecipes.mODE(stack, "oreSilver")) - return 0xe5e5e5; - if(MachineRecipes.mODE(stack, "oreDiamond")) - return 0x6ed5ef; - if(MachineRecipes.mODE(stack, "oreEmerald")) - return 0x6cf756; - if(MachineRecipes.mODE(stack, "oreLapis")) - return 0x092f7a; - if(MachineRecipes.mODE(stack, "oreRedstone")) - return 0xe50000; - if(MachineRecipes.mODE(stack, "oreTin")) - return 0xa09797; - if(MachineRecipes.mODE(stack, "oreCopper")) - return 0xd16208; - if(MachineRecipes.mODE(stack, "oreLead")) - return 0x384b68; - if(MachineRecipes.mODE(stack, "oreAluminum")) - return 0xdbdbdb; - if(MachineRecipes.mODE(stack, "oreTungsten")) - return 0x333333; - if(MachineRecipes.mODE(stack, "oreTitanium")) - return 0xDDDDDD; - if(MachineRecipes.mODE(stack, "oreUranium")) - return 0x3e4f3c; - if(MachineRecipes.mODE(stack, "oreBeryllium")) - return 0x8e8d7d; - if(MachineRecipes.mODE(stack, "oreSulfur")) - return 0x9b9309; - if(MachineRecipes.mODE(stack, "oreSalpeter") || MachineRecipes.mODE(stack, "oreNiter")) - return 0xa5a09d; - if(MachineRecipes.mODE(stack, "oreFluorite")) - return 0xffffff; - if(MachineRecipes.mODE(stack, "oreSchrabidium")) - return 0x1cffff; - if(MachineRecipes.mODE(stack, "oreRareEarth")) - return 0xffcc99; - - return isOre(stack) ? 0xBA00AF : 0x000000; - } - - private static boolean isOre(ItemStack stack) { - - int[] ids = OreDictionary.getOreIDs(new ItemStack(stack.getItem(), 1, stack.getItemDamage())); - - for(int i = 0; i < ids.length; i++) { - - String s = OreDictionary.getOreName(ids[i]); - - if(s.length() > 3 && s.substring(0, 3).equals("ore")) - return true; - } - - return false; - } - - private void drawRadar() { - - List entities = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.posX - 100, 0, player.posZ - 100, player.posX + 100, 5000, player.posZ + 100)); - - if(!entities.isEmpty()) { - for(Entity e : entities) { - - if(e.width * e.width * e.height >= 0.5D) { - int x = (int)((e.posX - this.x) / ((double)100 * 2 + 1) * (200D - 8D)) - 4; - int z = (int)((e.posZ - this.z) / ((double)100 * 2 + 1) * (200D - 8D)) - 4 - 9; - - int t = 5; - - //TODO: fix radar screen implementation - /*if(e instanceof EntityMissileBaseAdvanced) { - t = ((EntityMissileBaseAdvanced)e).getTargetType().ordinal(); - }*/ - - if(e instanceof EntityMob) { - t = 6; - } - - if(e instanceof EntityPlayer) { - t = 7; - } - - drawTexturedModalRect(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); - } - } - } - - } - - private void prontMap() { - for(int x = 0; x < 200; x++) { - for(int z = 0; z < 200; z++) { - if(map[x][z] != 0) { - GL11.glColor3ub((byte)((map[x][z] & 0xFF0000) >> 16), (byte)((map[x][z] & 0x00FF00) >> 8), (byte)(map[x][z] & 0x0000FF)); - drawTexturedModalRect(guiLeft + 8 + x, guiTop + 8 + z, 216, 216, 1, 1); - } - } - } - - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } - - private void drawNoService() { - drawTexturedModalRect((this.width - 77) / 2, (this.height - 12) / 2, 0, 228, 77, 12); - } - - private void drawNotConnected() { - drawTexturedModalRect((this.width - 121) / 2, (this.height - 12) / 2, 0, 216, 121, 12); - } - - protected void keyTyped(char p_73869_1_, int p_73869_2_) - { - if (p_73869_2_ == 1 || p_73869_2_ == this.mc.gameSettings.keyBindInventory.getKeyCode()) - { - this.mc.thePlayer.closeScreen(); - } - - if (p_73869_2_ == this.mc.gameSettings.keyBindForward.getKeyCode()) - { - this.z -= 50; - map = new int[200][200]; - } - - if (p_73869_2_ == this.mc.gameSettings.keyBindBack.getKeyCode()) - { - this.z += 50; - map = new int[200][200]; - } - - if (p_73869_2_ == this.mc.gameSettings.keyBindLeft.getKeyCode()) - { - this.x -= 50; - map = new int[200][200]; - } - - if (p_73869_2_ == this.mc.gameSettings.keyBindRight.getKeyCode()) - { - this.x += 50; - map = new int[200][200]; - } - - } - -} diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 9521c5457..bc3ebe077 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -111,12 +111,6 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large, 3))); - - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_mapper), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_mapper))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_scanner), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_scanner))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_radar), 600, 10_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_radar))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_laser), 600, 50_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_laser))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.sat_resonator), 600, 50_000L, new ComparableStack(ModItems.sat_base), new ComparableStack(ModItems.sat_head_resonator))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index ad06c04d4..b8d034cab 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -171,10 +171,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(ZR.billet(), 1)).setGroup(autoPileRod, INSTANCE)); this.register(new GenericRecipe("ass.pilenu").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.NU.ordinal())) .inputItems(new OreDictStack(U.billet(), 3)).setGroup(autoPileRod, INSTANCE)); - this.register(new GenericRecipe("ass.pilepu239").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PU239.ordinal())) - .inputItems(new OreDictStack(PU239.billet(), 3)).setGroup(autoPileRod, INSTANCE)); - this.register(new GenericRecipe("ass.pilergp").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.RGP.ordinal())) - .inputItems(new OreDictStack(PURG.billet(), 3)).setGroup(autoPileRod, INSTANCE)); // powders String autoCyclotron = "autoswitch.cyclotron"; @@ -967,77 +963,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED), new ComparableStack(ModItems.part_generic, 12, EnumPartType.LDE)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "soyuz")); - this.register(new GenericRecipe("ass.satellitebase").setup(600, 100).outputItems(new ItemStack(ModItems.sat_base, 1)) - .inputItems(new OreDictStack(RUBBER.ingot(), 12), - new OreDictStack(TI.shell(), 3), - new ComparableStack(ModItems.thruster_medium, 1), - new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE), - new ComparableStack(ModItems.plate_desh, 4), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), - new ComparableStack(ModItems.photo_panel, 24), - new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC), - new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); - this.register(new GenericRecipe("ass.satellitemapper").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_mapper, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 3), - new ComparableStack(ModItems.plate_desh, 4), - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), - new ComparableStack(ModBlocks.glass_quartz, 8))); - this.register(new GenericRecipe("ass.satellitescanner").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_scanner, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 3), - new OreDictStack(TI.plateCast(), 8), - new ComparableStack(ModItems.plate_desh, 4), - new ComparableStack(ModItems.magnetron, 8), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED.ordinal()))); - this.register(new GenericRecipe("ass.satelliteradar").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_radar, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 3), - new OreDictStack(TI.plateCast(), 12), - new ComparableStack(ModItems.magnetron, 12), - new ComparableStack(ModItems.coil_gold, 16), - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()))); - this.register(new GenericRecipe("ass.satellitelaser").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_laser, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 6), - new OreDictStack(CU.plateCast(), 24), - new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD), - new ComparableStack(ModItems.crystal_diamond, 8), - new ComparableStack(ModBlocks.glass_quartz, 8))); - this.register(new GenericRecipe("ass.satelliteresonator").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_resonator, 1)) - .inputItems(new OreDictStack(STEEL.plateCast(), 6), - new OreDictStack(STAR.ingot(), 12), - new OreDictStack(ANY_PLASTIC.ingot(), 48), - new ComparableStack(ModItems.crystal_xen, 1), - new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED))); - this.register(new GenericRecipe("ass.satelliterelay").setup(600, 100).outputItems(new ItemStack(ModItems.sat_foeq, 1)) - .inputItems(new OreDictStack(TI.shell(), 3), - new ComparableStack(ModItems.plate_desh, 8), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), - new ComparableStack(ModItems.photo_panel, 16), - new ComparableStack(ModItems.thruster_nuclear, 1), - new ComparableStack(ModItems.ingot_uranium_fuel, 6), - new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC), - new ComparableStack(ModItems.magnetron, 3), - new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); - this.register(new GenericRecipe("ass.satelliteasteroidminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_miner, 1)) - .inputItems(new OreDictStack(BIGMT.plate(), 24), - new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.drill_titanium, 2), - new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), - new ComparableStack(ModItems.thruster_small, 1), - new ComparableStack(ModItems.photo_panel, 12), - new ComparableStack(ModItems.centrifuge_element, 4), - new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); - this.register(new GenericRecipe("ass.satellitelunarminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_lunar_miner, 1)) - .inputItems(new ComparableStack(ModItems.ingot_meteorite, 4), - new ComparableStack(ModItems.plate_desh, 4), - new ComparableStack(ModItems.motor, 2), - new ComparableStack(ModItems.drill_titanium, 2), - new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), - new ComparableStack(ModItems.thruster_small, 1), - new ComparableStack(ModItems.photo_panel, 12), - new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); this.register(new GenericRecipe("ass.nitra").setupNamed(200, 500) .inputItems(new ComparableStack(ModItems.nitra)) diff --git a/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java b/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java index 0aef690b3..4849d8426 100644 --- a/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java @@ -71,7 +71,7 @@ public class PUREXRecipes extends GenericRecipes { .inputItems(new ComparableStack(ModItems.pile_rod, 1, EnumPileRod.RGP)) .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) .outputItems(new ItemStack(ModItems.billet_pu_mix, 2), - new ItemStack(ModItems.billet_uranium, 1)) + new ItemStack(ModItems.billet_nuclear_waste, 1)) .setIconToFirstIngredient()); this.register((PUREXRecipe) new PUREXRecipe("purex.pilewaste").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this) .inputItems(new ComparableStack(ModItems.pile_rod, 1, EnumPileRod.WASTE)) diff --git a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java index dd88e66f6..ef515383a 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java @@ -147,6 +147,16 @@ public class SolderingRecipes extends SerializableRecipe { new OreDictStack(PB.wireFine(), 32)} )); } + + recipes.add(new SolderingRecipe(new ItemStack(ModItems.sat_chip), 100, 100, + new AStack[] { + new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CAPACITOR)}, + new AStack[] { + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.PCB)}, + new AStack[] { + new OreDictStack(PB.wireFine(), 4)} + )); /* * UPGRADES diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index c5c3bd1da..26f743ae4 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -862,14 +862,6 @@ public class AnvilRecipes extends SerializableRecipe { new OreDictStack(U.billet(), 3), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.NU.ordinal())), }).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(PU239.billet(), 3), new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PU239.ordinal())), - }).setTier(2)); - constructionRecipes.add(new AnvilConstructionRecipe( - new OreDictStack(PURG.billet(), 3), new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.RGP.ordinal())), - }).setTier(2)); //RBMK constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6fe99b259..6f01e5de3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -335,7 +335,6 @@ public class ModItems { public static Item plate_desh; public static Item plate_bismuth; public static Item photo_panel; - public static Item sat_base; public static Item thruster_nuclear; public static Item safety_fuse; public static Item part_generic; @@ -631,12 +630,6 @@ public class ModItems { public static Item thruster_medium; public static Item thruster_large; - public static Item sat_head_mapper; - public static Item sat_head_scanner; - public static Item sat_head_radar; - public static Item sat_head_laser; - public static Item sat_head_resonator; - public static Item seg_10; public static Item seg_15; public static Item seg_20; @@ -1334,17 +1327,17 @@ public class ModItems { public static Item missile_soyuz; public static Item missile_soyuz_lander; - public static Item sat_mapper; - public static Item sat_scanner; - public static Item sat_radar; - public static Item sat_laser; - public static Item sat_foeq; - public static Item sat_resonator; - public static Item sat_miner; - public static Item sat_lunar_miner; + public static Item satellite; + @Deprecated public static Item sat_mapper; + @Deprecated public static Item sat_scanner; + @Deprecated public static Item sat_radar; + @Deprecated public static Item sat_laser; + @Deprecated public static Item sat_foeq; + @Deprecated public static Item sat_resonator; + @Deprecated public static Item sat_miner; + @Deprecated public static Item sat_lunar_miner; public static Item sat_gerald; public static Item sat_chip; - public static Item sat_interface; public static Item sat_coord; public static Item sat_designator; public static Item sat_relay; @@ -2191,7 +2184,6 @@ public class ModItems { ingot_solinium = new Item().setUnlocalizedName("ingot_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_solinium"); nugget_solinium = new Item().setUnlocalizedName("nugget_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_solinium"); photo_panel = new Item().setUnlocalizedName("photo_panel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":photo_panel"); - sat_base = new Item().setUnlocalizedName("sat_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_base"); thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); @@ -2623,12 +2615,6 @@ public class ModItems { thruster_medium = new Item().setUnlocalizedName("thruster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_medium"); thruster_large = new Item().setUnlocalizedName("thruster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_large"); - sat_head_mapper = new Item().setUnlocalizedName("sat_head_mapper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_mapper"); - sat_head_scanner = new Item().setUnlocalizedName("sat_head_scanner").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_scanner"); - sat_head_radar = new Item().setUnlocalizedName("sat_head_radar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_radar"); - sat_head_laser = new Item().setUnlocalizedName("sat_head_laser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_laser"); - sat_head_resonator = new Item().setUnlocalizedName("sat_head_resonator").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_resonator"); - seg_10 = new Item().setUnlocalizedName("seg_10").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_10"); seg_15 = new Item().setUnlocalizedName("seg_15").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_15"); seg_20 = new Item().setUnlocalizedName("seg_20").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_20"); @@ -3428,23 +3414,23 @@ public class ModItems { missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); 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"); - sat_radar = new ItemSatChip().setUnlocalizedName("sat_radar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_radar"); - sat_laser = new ItemSatChip().setUnlocalizedName("sat_laser").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_laser"); - sat_foeq = new ItemSatChip().setUnlocalizedName("sat_foeq").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_foeq"); - sat_resonator = new ItemSatChip().setUnlocalizedName("sat_resonator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_resonator"); - sat_miner = new ItemSatChip().setUnlocalizedName("sat_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_miner"); - sat_lunar_miner = new ItemSatChip().setUnlocalizedName("sat_lunar_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_lunar_miner"); + satellite = new ItemSatellite().setUnlocalizedName("satellite").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":satellite"); + sat_mapper = new ItemSatChip().setUnlocalizedName("sat_mapper").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_mapper"); + sat_scanner = new ItemSatChip().setUnlocalizedName("sat_scanner").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_scanner"); + sat_radar = new ItemSatChip().setUnlocalizedName("sat_radar").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_radar"); + sat_laser = new ItemSatChip().setUnlocalizedName("sat_laser").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_laser"); + sat_foeq = new ItemSatChip().setUnlocalizedName("sat_foeq").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_foeq"); + sat_resonator = new ItemSatChip().setUnlocalizedName("sat_resonator").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_resonator"); + sat_miner = new ItemSatChip().setUnlocalizedName("sat_miner").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_miner"); + sat_lunar_miner = new ItemSatChip().setUnlocalizedName("sat_lunar_miner").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":sat_lunar_miner"); sat_gerald = new ItemSatChip().setUnlocalizedName("sat_gerald").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_gerald"); sat_chip = new ItemSatChip().setUnlocalizedName("sat_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_chip"); - sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); sat_relay = new ItemSatChip().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); - mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); + mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); mp_thruster_10_xenon = new ItemCustomMissilePart().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); mp_thruster_15_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); mp_thruster_15_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); @@ -3454,21 +3440,21 @@ public class ModItems { mp_thruster_15_hydrogen = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); mp_thruster_15_hydrogen_dual = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); mp_thruster_15_balefire_short = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); - mp_thruster_15_balefire = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); - mp_thruster_15_balefire_large = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); + mp_thruster_15_balefire = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); + mp_thruster_15_balefire_large = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); mp_thruster_15_balefire_large_rad = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); mp_thruster_20_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); mp_thruster_20_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); - mp_thruster_20_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); + mp_thruster_20_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); mp_thruster_20_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); mp_thruster_20_solid_multi = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); mp_thruster_20_solid_multier = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); - mp_stability_10_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); + mp_stability_10_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); mp_stability_10_cruise = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); mp_stability_10_space = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); - mp_stability_15_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); - mp_stability_15_thin = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); + mp_stability_15_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); + mp_stability_15_thin = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); mp_stability_15_soyuz = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); mp_stability_20_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); @@ -4998,12 +4984,6 @@ public class ModItems { GameRegistry.registerItem(thruster_medium, thruster_medium.getUnlocalizedName()); GameRegistry.registerItem(thruster_large, thruster_large.getUnlocalizedName()); GameRegistry.registerItem(thruster_nuclear, thruster_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(sat_base, sat_base.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_mapper, sat_head_mapper.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_scanner, sat_head_scanner.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_radar, sat_head_radar.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_laser, sat_head_laser.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_resonator, sat_head_resonator.getUnlocalizedName()); GameRegistry.registerItem(seg_10, seg_10.getUnlocalizedName()); GameRegistry.registerItem(seg_15, seg_15.getUnlocalizedName()); GameRegistry.registerItem(seg_20, seg_20.getUnlocalizedName()); @@ -5708,6 +5688,7 @@ public class ModItems { GameRegistry.registerItem(mp_chip_5, mp_chip_5.getUnlocalizedName()); //Satellites + GameRegistry.registerItem(satellite, satellite.getUnlocalizedName()); GameRegistry.registerItem(sat_mapper, sat_mapper.getUnlocalizedName()); GameRegistry.registerItem(sat_scanner, sat_scanner.getUnlocalizedName()); GameRegistry.registerItem(sat_radar, sat_radar.getUnlocalizedName()); @@ -5718,7 +5699,6 @@ public class ModItems { GameRegistry.registerItem(sat_lunar_miner, sat_lunar_miner.getUnlocalizedName()); GameRegistry.registerItem(sat_gerald, sat_gerald.getUnlocalizedName()); GameRegistry.registerItem(sat_chip, sat_chip.getUnlocalizedName()); - GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName()); GameRegistry.registerItem(sat_coord, sat_coord.getUnlocalizedName()); GameRegistry.registerItem(sat_designator, sat_designator.getUnlocalizedName()); GameRegistry.registerItem(sat_relay, sat_relay.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index 2e55ef0e0..d9c03f752 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -8,7 +8,7 @@ import com.hbm.handler.threading.PacketThreading; import com.hbm.items.ISatChip; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.SatelliteBase; import com.hbm.saveddata.satellites.SatelliteScanner; import net.minecraft.block.Block; @@ -53,7 +53,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { if(lens == null) return; int freq = this.getFreq(lens); - Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(freq); + SatelliteBase sat = SatelliteSavedData.getData(world).getSatFromFreq(freq); if(!(sat instanceof SatelliteScanner)) return; int x = (int) Math.floor(player.posX); diff --git a/src/main/java/com/hbm/items/special/ItemSatellite.java b/src/main/java/com/hbm/items/special/ItemSatellite.java new file mode 100644 index 000000000..b7bdce2f0 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemSatellite.java @@ -0,0 +1,34 @@ +package com.hbm.items.special; + +import java.util.List; + +import com.hbm.items.ISatChip; +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.i18n.I18nUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class ItemSatellite extends ItemEnumMulti implements ISatChip { + + public ItemSatellite() { + super(EnumSatType.class, true, true); + } + + public static enum EnumSatType { + SPY, + SCANNER, + RADAR, + MINER_ASTRO, + MINER_LUNAR, + PRECISION_LASER, + DEATH_RAY, + XENIUM_RESONATOR, + RELAY + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + list.add(I18nUtil.resolveKey("satchip.frequency") + ": " + getFreq(stack)); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemSatDesignator.java b/src/main/java/com/hbm/items/tool/ItemSatDesignator.java index 6902bce05..6295dda63 100644 --- a/src/main/java/com/hbm/items/tool/ItemSatDesignator.java +++ b/src/main/java/com/hbm/items/tool/ItemSatDesignator.java @@ -3,8 +3,7 @@ package com.hbm.items.tool; import com.hbm.items.machine.ItemSatChip; import com.hbm.lib.Library; import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; -import com.hbm.saveddata.satellites.Satellite.Interfaces; +import com.hbm.saveddata.satellites.SatelliteBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -19,7 +18,7 @@ public class ItemSatDesignator extends ItemSatChip { if(!world.isRemote) { - Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(this.getFreq(stack)); + SatelliteBase sat = SatelliteSavedData.getData(world).getSatFromFreq(this.getFreq(stack)); if(sat != null) { MovingObjectPosition pos = Library.rayTrace(player, 300, 1); @@ -29,11 +28,7 @@ public class ItemSatDesignator extends ItemSatChip { int y = pos.blockY + dir.offsetY; int z = pos.blockZ + dir.offsetZ; - if(sat.satIface == Interfaces.SAT_COORD) { - sat.onCoordAction(world, player, x, y, z); - } else if(sat.satIface == Interfaces.SAT_PANEL) { - sat.onClick(world, x, z); - } + sat.onCoordAction(world, player, x, y, z); } } diff --git a/src/main/java/com/hbm/items/tool/ItemSatInterface.java b/src/main/java/com/hbm/items/tool/ItemSatInterface.java index 480993e35..e0cff0d60 100644 --- a/src/main/java/com/hbm/items/tool/ItemSatInterface.java +++ b/src/main/java/com/hbm/items/tool/ItemSatInterface.java @@ -1,14 +1,12 @@ package com.hbm.items.tool; import com.hbm.inventory.gui.GUIScreenSatCoord; -import com.hbm.inventory.gui.GUIScreenSatInterface; +import com.hbm.items.IItemControlReceiver; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemSatChip; import com.hbm.main.MainRegistry; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.SatPanelPacket; import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.SatelliteBase; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; @@ -18,53 +16,44 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class ItemSatInterface extends ItemSatChip implements IGUIProvider { +public class ItemSatInterface extends ItemSatChip implements IGUIProvider, IItemControlReceiver { - @SideOnly(Side.CLIENT) - public static Satellite currentSat; + public static final String KEY_NBT_CONNECTED = "connected"; @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(world.isRemote) { - - player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); - } - + if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); return stack; } - - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - - if(world.isRemote || !(entity instanceof EntityPlayerMP)) - return; - - if(((EntityPlayerMP)entity).getHeldItem() != stack) - return; - - Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(this.getFreq(stack)); - - if(sat != null && entity.ticksExisted % 2 == 0) { - PacketDispatcher.wrapper.sendTo(new SatPanelPacket(sat), (EntityPlayerMP) entity); //making this one sat that is static might not have been a good idea - } - } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { + + if(world.isRemote || !(entity instanceof EntityPlayerMP)) + return; + + if(((EntityPlayerMP) entity).getHeldItem() != stack) + return; + + SatelliteBase sat = SatelliteSavedData.getData(world).getSatFromFreq(this.getFreq(stack)); + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setBoolean(KEY_NBT_CONNECTED, sat != null); } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - if(this == ModItems.sat_interface) - return new GUIScreenSatInterface(player); - else if(this == ModItems.sat_coord) - return new GUIScreenSatCoord(player); - + if(this == ModItems.sat_coord) return new GUIScreenSatCoord(player); return null; } + @Override + public void receiveControl(ItemStack stack, NBTTagCompound data) { + + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e20c75122..bf7ee5ae8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -692,6 +692,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRagingVortex.class, new RenderBlackHole()); RenderingRegistry.registerEntityRenderingHandler(EntityQuasar.class, new RenderQuasar()); RenderingRegistry.registerEntityRenderingHandler(EntityDeathBlast.class, new RenderDeathBlast()); + RenderingRegistry.registerEntityRenderingHandler(EntityOrbitalLaser.class, new RenderOrbitalLaser()); RenderingRegistry.registerEntityRenderingHandler(EntitySpear.class, new RenderSpear()); RenderingRegistry.registerEntityRenderingHandler(EntityNukeTorex.class, new RenderTorex()); //minecarts diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index de2992170..37e4304cb 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -593,12 +593,10 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_wormhole, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.plate_dineutronium, 'P', ModItems.powder_spark_mix, 'S', ModItems.singularity }); addRecipeAuto(new ItemStack(ModItems.ams_core_eyeofharmony, 1), new Object[] { "ALA", "LSL", "ALA", 'A', ModItems.plate_dalekanium, 'L', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.LAVA.getID()), 'S', ModItems.black_hole }); addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()) }); - addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); - addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); + addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', SI.billet(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) }); + addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', ANY_RESISTANTALLOY.ingot(), 'S', ANY_PLASTIC.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', MINGRADE.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', ANY_PLASTIC.ingot() }); addShapelessAuto(new ItemStack(ModItems.geiger_counter), new Object[] { ModBlocks.geiger }); - addRecipeAuto(new ItemStack(ModItems.sat_interface), new Object[] { "ISI", "PCP", "PAP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModItems.sat_coord), new Object[] { "SII", "SCA", "SPP", 'I', STEEL.ingot(), 'S', STAR.ingot(), 'P', ModItems.plate_polymer, 'C', ModItems.sat_chip, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SCS", "MDM", "SCS", 'S', IRON.ingot(), 'D', MINGRADE.ingot(), 'M',ModItems.coil_copper, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR) }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', DURA.plate() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 9ffb9ebc0..a11342252 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -34,7 +34,7 @@ import com.hbm.lib.HbmWorld; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.XSatelliteRegistry; import com.hbm.tileentity.TileMappings; import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; import com.hbm.tileentity.bomb.TileEntityNukeCustom; @@ -271,7 +271,7 @@ public class MainRegistry { GameRegistry.registerFuelHandler(new FuelHandler()); BulletConfigSyncingUtil.loadConfigsForSync(); CellularDungeonFactory.init(); - Satellite.register(); + XSatelliteRegistry.register(); HTTPHandler.loadStats(); CraftingManager.mainRegistry(); SiegeTier.registerTiers(); @@ -1637,6 +1637,13 @@ public class MainRegistry { ignoreMappings.add("hbm:item.drax"); ignoreMappings.add("hbm:item.drax_mk2"); ignoreMappings.add("hbm:item.drax_mk3"); + ignoreMappings.add("hbm:item.sat_base"); + ignoreMappings.add("hbm:item.sat_head_mapper"); + ignoreMappings.add("hbm:item.sat_head_scanner"); + ignoreMappings.add("hbm:item.sat_head_radar"); + ignoreMappings.add("hbm:item.sat_head_laser"); + ignoreMappings.add("hbm:item.sat_head_resonator"); + ignoreMappings.add("hbm:item.sat_interface"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 460912a3a..8b96d8a7f 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -19,14 +19,10 @@ public class PacketDispatcher { wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); - //Signals server to perform orbital strike, among other things - wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server wrapper.registerMessage(AuxButtonPacket.Handler.class, AuxButtonPacket.class, i++, Side.SERVER); //Siren packet for looped sounds wrapper.registerMessage(TEVaultPacket.Handler.class, TEVaultPacket.class, i++, Side.CLIENT); - //Packet to send sat info to players - wrapper.registerMessage(SatPanelPacket.Handler.class, SatPanelPacket.class, i++, Side.CLIENT); //Packet to send block break particles wrapper.registerMessage(ParticleBurstPacket.Handler.class, ParticleBurstPacket.class, i++, Side.CLIENT); //Packet to send chunk radiation info to individual players @@ -39,8 +35,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEMissileMultipartPacket.Handler.class, TEMissileMultipartPacket.class, i++, Side.CLIENT); //Aux Particle Packet, New Technology: like the APP but with NBT wrapper.registerMessage(AuxParticlePacketNT.Handler.class, AuxParticlePacketNT.class, i++, Side.CLIENT); - //Signals server to do coord based satellite stuff - wrapper.registerMessage(SatCoordPacket.Handler.class, SatCoordPacket.class, i++, Side.SERVER); //Triggers gun animations of the client wrapper.registerMessage(HbmAnimationPacket.Handler.class, HbmAnimationPacket.class, i++, Side.CLIENT); //Sends a funi text to display like a music disc announcement diff --git a/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java b/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java deleted file mode 100644 index e3b815808..000000000 --- a/src/main/java/com/hbm/packet/toclient/SatPanelPacket.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.packet.toclient; - -import java.io.IOException; - -import com.hbm.items.tool.ItemSatInterface; -import com.hbm.saveddata.satellites.Satellite; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import net.minecraft.client.Minecraft; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.PacketBuffer; - -public class SatPanelPacket implements IMessage { - - PacketBuffer buffer; - int type; - - public SatPanelPacket() { - - } - - public SatPanelPacket(Satellite sat) { - type = sat.getID(); - - this.buffer = new PacketBuffer(Unpooled.buffer()); - NBTTagCompound nbt = new NBTTagCompound(); - sat.writeToNBT(nbt); - - try { - buffer.writeNBTTagCompoundToBuffer(nbt); - - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void fromBytes(ByteBuf buf) { - - type = buf.readInt(); - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } - buffer.writeBytes(buf); - } - - @Override - public void toBytes(ByteBuf buf) { - - buf.writeInt(type); - - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } - buf.writeBytes(buffer); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(SatPanelPacket m, MessageContext ctx) { - - Minecraft.getMinecraft(); - - try { - - NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer(); - ItemSatInterface.currentSat = Satellite.create(m.type); - - if(nbt != null) - ItemSatInterface.currentSat.readFromNBT(nbt); - - } catch (Exception x) { - } finally { - m.buffer.release(); - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java b/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java deleted file mode 100644 index b36ef3245..000000000 --- a/src/main/java/com/hbm/packet/toserver/SatCoordPacket.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.hbm.packet.toserver; - -import com.hbm.items.ISatChip; -import com.hbm.items.tool.ItemSatInterface; -import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; - -public class SatCoordPacket implements IMessage { - - int x; - int y; - int z; - int freq; - - public SatCoordPacket() - { - - } - - public SatCoordPacket(int x, int y, int z, int freq) - { - this.x = x; - this.y = y; - this.z = z; - this.freq = freq; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - freq = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(freq); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(SatCoordPacket m, MessageContext ctx) { - - EntityPlayer p = ctx.getServerHandler().playerEntity; - - if(p.getHeldItem() != null && p.getHeldItem().getItem() instanceof ItemSatInterface) { - - int freq = ISatChip.getFreqS(p.getHeldItem()); - - if(freq == m.freq) { - Satellite sat = SatelliteSavedData.getData(p.worldObj).getSatFromFreq(m.freq); - - if(sat != null) - sat.onCoordAction(p.worldObj, p, m.x, m.y, m.z); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java b/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java deleted file mode 100644 index 9b0bacea8..000000000 --- a/src/main/java/com/hbm/packet/toserver/SatLaserPacket.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.packet.toserver; - -import com.hbm.items.ISatChip; -import com.hbm.items.tool.ItemSatInterface; -import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; - -public class SatLaserPacket implements IMessage { - - //0: Add - //1: Subtract - //2: Set - int x; - int z; - int freq; - - public SatLaserPacket() - { - - } - - public SatLaserPacket(int x, int z, int freq) - { - this.x = x; - this.z = z; - this.freq = freq; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - z = buf.readInt(); - freq = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(z); - buf.writeInt(freq); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(SatLaserPacket m, MessageContext ctx) { - - EntityPlayer p = ctx.getServerHandler().playerEntity; - - if(p.getHeldItem() != null && p.getHeldItem().getItem() instanceof ItemSatInterface) { - - int freq = ISatChip.getFreqS(p.getHeldItem()); - - if(freq == m.freq) { - Satellite sat = SatelliteSavedData.getData(p.worldObj).getSatFromFreq(m.freq); - - if(sat != null) - sat.onClick(p.worldObj, m.x, m.z); - } - } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/RenderDeathBlast.java b/src/main/java/com/hbm/render/entity/effect/RenderDeathBlast.java index 80e017dad..de478c722 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderDeathBlast.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderDeathBlast.java @@ -16,110 +16,106 @@ import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; public class RenderDeathBlast extends Render { - + private static final IModelCustom sphere = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Sphere.obj")); @Override - public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) { - - GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDepthMask(false); + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { GL11.glPushMatrix(); - //GL11.glRotatef((entity.ticksExisted % 360) * 10, 0, 1, 0); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - //GL11.glDisable(GL11.GL_ALPHA_TEST); - - GL11.glColor3f(1.0F, 0, 0); - - Vec3 vector = Vec3.createVectorHelper(0.5D, 0, 0); - - Tessellator tessellator = Tessellator.instance; - RenderHelper.disableStandardItemLighting(); - - for(int i = 0; i < 8; i++) { - tessellator.startDrawing(6); - tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord); - tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord); - vector.rotateAroundY(45); - tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord); - tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord); - tessellator.draw(); - } + GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDepthMask(false); - GL11.glColor3f(1.0F, 0, 1.0F); - - for(int i = 0; i < 8; i++) { - tessellator.startDrawing(6); - tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); - tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2); - vector.rotateAroundY(45); - tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2); - tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); - tessellator.draw(); - } - GL11.glPopMatrix(); - - GL11.glDepthMask(true); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glPopMatrix(); - - renderOrb(entity, x, y, z, p_76986_8_, p_76986_9_); + GL11.glColor3f(0F, 1F, 0F); + + Vec3 vector = Vec3.createVectorHelper(0.5D, 0, 0); + + Tessellator tessellator = Tessellator.instance; + RenderHelper.disableStandardItemLighting(); + + for(int i = 0; i < 8; i++) { + tessellator.startDrawing(6); + tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord); + tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord); + vector.rotateAroundY(45); + tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord); + tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord); + tessellator.draw(); + } + + GL11.glColor3f(1.0F, 0, 1.0F); + + for(int i = 0; i < 8; i++) { + tessellator.startDrawing(6); + tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); + tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2); + vector.rotateAroundY(45); + tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2); + tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); + tessellator.draw(); + } + GL11.glPopMatrix(); + + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + + renderOrb(entity, x, y, z, f0, interp); } - public void renderOrb(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) { + public void renderOrb(Entity entity, double x, double y, double z, float f0, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glAlphaFunc(GL11.GL_GEQUAL, 0); - - double scale = 10 - 10D * (((double)entity.ticksExisted) / ((double)EntityDeathBlast.maxAge)); - double alpha = (((double)entity.ticksExisted) / ((double)EntityDeathBlast.maxAge)); - - if(scale < 0) - scale = 0; - - GL11.glColor4d(1.0, 0, 1.0, alpha); + + double scale = 10 - 10D * (((double) entity.ticksExisted + interp) / ((double) EntityDeathBlast.maxAge)); + double alpha = (((double) entity.ticksExisted + interp) / ((double) EntityDeathBlast.maxAge)); + + if(scale < 0) scale = 0; + + GL11.glColor4d(0.05, 1.0, 0.05, alpha); GL11.glEnable(GL11.GL_BLEND); - GL11.glScaled(scale, scale, scale); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - sphere.renderAll(); + GL11.glScaled(scale, scale, scale); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + sphere.renderAll(); + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glScaled(1.25, 1.25, 1.25); + GL11.glColor4d(0, 1, 0, alpha * 0.125); + + for(int i = 0; i < 8; i++) { + sphere.renderAll(); + GL11.glScaled(1.05, 1.05, 1.05); + } - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glScaled(1.25, 1.25, 1.25); - GL11.glColor4d(1.0, 0, 0, alpha * 0.125); - - for(int i = 0; i < 8; i++) { - sphere.renderAll(); - GL11.glScaled(1.05, 1.05, 1.05); - } - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); - GL11.glColor4d(1.0, 1.0, 1.0, 1.0); - - GL11.glPopMatrix(); + GL11.glColor4d(1.0, 1.0, 1.0, 1.0); + + GL11.glPopMatrix(); } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return null; } - } diff --git a/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java b/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java new file mode 100644 index 000000000..99e3a4f8f --- /dev/null +++ b/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java @@ -0,0 +1,70 @@ +package com.hbm.render.entity.effect; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; + +public class RenderOrbitalLaser extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDepthMask(false); + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + + GL11.glColor3f(1F, 0F, 0F); + + Vec3 vector = Vec3.createVectorHelper(0.5D, 0, 0); + + Tessellator tessellator = Tessellator.instance; + RenderHelper.disableStandardItemLighting(); + + for(int i = 0; i < 8; i++) { + tessellator.startDrawing(6); + tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord); + tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord); + vector.rotateAroundY(45); + tessellator.addVertex(vector.xCoord, 0.0D, vector.zCoord); + tessellator.addVertex(vector.xCoord, 250.0D, vector.zCoord); + tessellator.draw(); + } + + for(int i = 0; i < 8; i++) { + tessellator.startDrawing(6); + tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); + tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2); + vector.rotateAroundY(45); + tessellator.addVertex(vector.xCoord / 2, 0.0D, vector.zCoord / 2); + tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); + tessellator.draw(); + } + GL11.glPopMatrix(); + + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } +} diff --git a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java index 2ced0842d..3bfb13e3b 100644 --- a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java +++ b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java @@ -1,6 +1,7 @@ package com.hbm.saveddata; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.SatelliteBase; +import com.hbm.saveddata.satellites.XSatelliteRegistry; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; @@ -10,7 +11,7 @@ import java.util.Map.Entry; public class SatelliteSavedData extends WorldSavedData { - public final HashMap sats = new HashMap<>(); + public final HashMap sats = new HashMap<>(); /** * Constructor used for deserialization @@ -28,24 +29,18 @@ public class SatelliteSavedData extends WorldSavedData { this.markDirty(); } - public boolean isFreqTaken(int freq) { - return getSatFromFreq(freq) != null; - } - - public Satellite getSatFromFreq(int freq) { - return sats.get(freq); - } + public boolean isFreqTaken(int freq) { return getSatFromFreq(freq) != null; } + public SatelliteBase getSatFromFreq(int freq) { return sats.get(freq); } @Override public void readFromNBT(NBTTagCompound nbt) { int satCount = nbt.getInteger("satCount"); for(int i = 0; i < satCount; i++) { - Satellite sat = Satellite.create(nbt.getInteger("sat_id_" + i)); + SatelliteBase sat = XSatelliteRegistry.createFromId(nbt.getInteger("sat_id_" + i)); sat.readFromNBT((NBTTagCompound) nbt.getTag("sat_data_" + i)); int freq = nbt.getInteger("sat_freq_" + i); - sats.put(freq, sat); } } @@ -56,7 +51,7 @@ public class SatelliteSavedData extends WorldSavedData { int i = 0; - for(Entry struct : sats.entrySet()) { + for(Entry struct : sats.entrySet()) { NBTTagCompound data = new NBTTagCompound(); struct.getValue().writeToNBT(data); @@ -74,7 +69,6 @@ public class SatelliteSavedData extends WorldSavedData { data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); } - return data; } } diff --git a/src/main/java/com/hbm/saveddata/satellites/Satellite.java b/src/main/java/com/hbm/saveddata/satellites/Satellite.java deleted file mode 100644 index e1a3ff431..000000000 --- a/src/main/java/com/hbm/saveddata/satellites/Satellite.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.saveddata.satellites; - -import com.hbm.items.ModItems; -import com.hbm.saveddata.SatelliteSavedData; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -public abstract class Satellite { - - public static final List> satellites = new ArrayList<>(); - public static final HashMap> itemToClass = new HashMap<>(); - - public enum InterfaceActions { - HAS_MAP, //lets the interface display loaded chunks - CAN_CLICK, //enables onClick events - SHOW_COORDS, //enables coordinates as a mouse tooltip - HAS_RADAR, //lets the interface display loaded entities - HAS_ORES //like HAS_MAP but only shows ores - } - - public enum CoordActions { - HAS_Y //enables the Y-coord field which is disabled by default - } - - public enum Interfaces { - NONE, //does not interact with any sat interface (i.e. asteroid miners) - SAT_PANEL, //allows to interact with the sat interface panel (for graphical applications) - SAT_COORD //allows to interact with the sat coord remote (for teleportation or other coord related actions) - } - - public List ifaceAcs = new ArrayList<>(); - public List coordAcs = new ArrayList<>(); - public Interfaces satIface = Interfaces.NONE; - - public static void register() { - registerSatellite(SatelliteMapper.class, ModItems.sat_mapper); - registerSatellite(SatelliteScanner.class, ModItems.sat_scanner); - registerSatellite(SatelliteRadar.class, ModItems.sat_radar); - registerSatellite(SatelliteLaser.class, ModItems.sat_laser); - registerSatellite(SatelliteResonator.class, ModItems.sat_resonator); - registerSatellite(SatelliteRelay.class, ModItems.sat_foeq); - registerSatellite(SatelliteMiner.class, ModItems.sat_miner); - registerSatellite(SatelliteLunarMiner.class, ModItems.sat_lunar_miner); - registerSatellite(SatelliteHorizons.class, ModItems.sat_gerald); - } - - /** - * Register satellite. - * @param sat - Satellite class - * @param item - Satellite item (which will be placed in a rocket) - */ - public static void registerSatellite(Class sat, Item item) { - if(!itemToClass.containsKey(item) && !itemToClass.containsValue(sat)) { - satellites.add(sat); - itemToClass.put(item, sat); - } - } - - public static void orbit(World world, int id, int freq, double x, double y, double z) { - if(world.isRemote) { - return; - } - - Satellite sat = create(id); - - if(sat != null) { - SatelliteSavedData data = SatelliteSavedData.getData(world); - data.sats.put(freq, sat); - sat.onOrbit(world, x, y, z); - data.markDirty(); - } - } - - public static Satellite create(int id) { - Satellite sat = null; - - try { - Class c = satellites.get(id); - sat = c.newInstance(); - } catch(Exception e) { - e.printStackTrace(); - } - - return sat; - } - - public static int getIDFromItem(Item item) { - Class sat = itemToClass.get(item); - - return satellites.indexOf(sat); - } - - public int getID() { - return satellites.indexOf(this.getClass()); - } - - public void writeToNBT(NBTTagCompound nbt) { } - - public void readFromNBT(NBTTagCompound nbt) { } - - /** - * Called when the satellite reaches space, used to trigger achievements and other funny stuff. - * @param x posX of the rocket - * @param y ditto - * @param z ditto - */ - public void onOrbit(World world, double x, double y, double z) { } - - /** - * Called by the sat interface when clicking on the screen - * @param x the x-coordinate translated from the on-screen coords to actual world coordinates - * @param z ditto - */ - public void onClick(World world, int x, int z) { } - - /** - * Called by the coord sat interface - * @param x the specified x-coordinate - * @param y ditto - * @param z ditto - */ - public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { } -} diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteBase.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteBase.java new file mode 100644 index 000000000..ab17d4a7f --- /dev/null +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteBase.java @@ -0,0 +1,93 @@ +package com.hbm.saveddata.satellites; + +import com.hbm.tileentity.network.RTTYSystem; + +import api.hbm.redstoneoverradio.IRORInteractive; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public abstract class SatelliteBase { + + public static final String CHAN_SATLINK = "SAT_LINK"; + + public static final String CMD_SETTARGET = "settarget"; + public static final String CMD_GETTARGET = "gettarget"; + public static final String CMD_GETTARGETX = "gettargetx"; + public static final String CMD_GETTARGETZ = "gettargetz"; + + public int range = 1_000; + public int targetX; + public int targetZ; + + public String tx = ""; + + public int getID() { + return XSatelliteRegistry.satellites.indexOf(this.getClass()); + } + + public abstract String getType(); + + public void writeToNBT(NBTTagCompound nbt) { + nbt.setInteger("targetX", targetX); + nbt.setInteger("targetZ", targetZ); + nbt.setString("tx", tx); + } + + public void readFromNBT(NBTTagCompound nbt) { + this.targetX = nbt.getInteger("targetX"); + this.targetZ = nbt.getInteger("targetZ"); + this.tx = nbt.getString("tx"); + } + + public void onOrbit(World world, double x, double y, double z) { + setTarget((int) Math.floor(x), (int) Math.floor(z)); + + RTTYSystem.broadcast(world, CHAN_SATLINK, "Established connection to " + getType() + " at " + targetX + " / " + targetZ); + } + + public void onCommand(World world, String... cmd) { + onCommandTarget(world, cmd); + onCommandImpl(world, cmd); + } + + public void onCommandTarget(World world, String... cmd) { + if(cmd.length <= 0) return; + + if(cmd[0].equals(CMD_SETTARGET)) { + if(cmd.length == 3) { + targetX = IRORInteractive.parseInt(cmd[1]); + targetZ = IRORInteractive.parseInt(cmd[2]); + } + if(cmd.length == 4) { + targetX = IRORInteractive.parseInt(cmd[1]); + targetZ = IRORInteractive.parseInt(cmd[3]); + } + return; + } + + if(cmd[0].equals(CMD_GETTARGET)) { + this.tx = targetX + ";" + targetZ; + return; + } + + if(cmd[0].equals(CMD_GETTARGETX)) { + this.tx = "" + targetX; + return; + } + + if(cmd[0].equals(CMD_GETTARGETZ)) { + this.tx = "" + targetZ; + return; + } + } + + public void setTarget(int x, int z) { + this.targetX = x; + this.targetZ = z; + } + + public void onCommandImpl(World world, String... cmd) { } + + public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { } +} diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteDeathRay.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteDeathRay.java new file mode 100644 index 000000000..5775bcec6 --- /dev/null +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteDeathRay.java @@ -0,0 +1,73 @@ +package com.hbm.saveddata.satellites; + +import java.util.Locale; + +import com.hbm.entity.logic.EntityDeathBlast; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class SatelliteDeathRay extends SatelliteBase { + + public static final String CMD_FIRE = "fire"; + public static final String CMD_CANFIRE = "canfire"; + + public static final int CHARGE_TIME = 5 * 60 * 20; + + public long lastShot; + + public SatelliteDeathRay() { } + + @Override public String getType() { return "ORBITAL_FUN_PLATFORM_:)"; } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("lastShot", lastShot); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + lastShot = nbt.getLong("lastShot"); + } + + @Override + public void onCommandImpl(World world, String... cmd) { + if(cmd.length <= 0) return; + + if(cmd[0].equals(CMD_FIRE)) { + deathBlast(world, targetX, targetZ); + return; + } + + if(cmd[0].equals(CMD_CANFIRE)) { + this.tx = (lastShot + CHARGE_TIME < world.getTotalWorldTime()) + ""; + this.tx = this.tx.toUpperCase(Locale.US); + return; + } + } + + @Override + public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { + this.setTarget(x, z); + this.deathBlast(world, targetX, targetZ); + } + + public void deathBlast(World world, int x, int z) { + + if(lastShot + CHARGE_TIME < world.getTotalWorldTime()) { + lastShot = world.getTotalWorldTime(); + + int y = world.getHeightValue(x, z); + + EntityDeathBlast blast = new EntityDeathBlast(world); + blast.posX = x; + blast.posY = y; + blast.posZ = z; + + world.spawnEntityInWorld(blast); + } + } +} diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteHorizons.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteHorizons.java index a7d8330f3..3b125057c 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteHorizons.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteHorizons.java @@ -1,5 +1,7 @@ package com.hbm.saveddata.satellites; +import java.util.Locale; + import com.hbm.entity.projectile.EntityTom; import com.hbm.main.MainRegistry; import com.hbm.saveddata.SatelliteSavedData; @@ -12,32 +14,59 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; -public class SatelliteHorizons extends Satellite { +public class SatelliteHorizons extends SatelliteBase { + + public static final String CMD_FIRE = "fire"; + public static final String CMD_CANFIRE = "settarget"; boolean used = false; - public SatelliteHorizons() { - this.satIface = Interfaces.SAT_COORD; - } + public SatelliteHorizons() { } + @Override public String getType() { return "PAYLOAD_UNKNOWN"; } + + @Override public void onOrbit(World world, double x, double y, double z) { + super.onOrbit(world, x, y, z); for(Object p : world.playerEntities) ((EntityPlayer)p).triggerAchievement(MainRegistry.horizonsStart); } - + + @Override public void writeToNBT(NBTTagCompound nbt) { nbt.setBoolean("used", used); } - + + @Override public void readFromNBT(NBTTagCompound nbt) { used = nbt.getBoolean("used"); } - - public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { + + @Override + public void onCommandImpl(World world, String... cmd) { + if(cmd.length <= 0) return; - if(used) + if(cmd[0].equals(CMD_FIRE)) { + theHorizons(world, targetX, targetZ); return; + } + + if(cmd[0].equals(CMD_CANFIRE)) { + this.tx = (!used) + ""; + this.tx = this.tx.toUpperCase(Locale.US); + return; + } + } + + @Override + public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { + this.setTarget(x, z); + this.theHorizons(world, x, z); + } + + public void theHorizons(World world, int x, int z) { + if(used) return; used = true; SatelliteSavedData.getData(world).markDirty(); diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLaser.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLaser.java deleted file mode 100644 index 46c5f89a6..000000000 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLaser.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.saveddata.satellites; - -import com.hbm.entity.logic.EntityDeathBlast; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public class SatelliteLaser extends Satellite { - - public long lastOp; - - public SatelliteLaser() { - this.ifaceAcs.add(InterfaceActions.HAS_MAP); - this.ifaceAcs.add(InterfaceActions.SHOW_COORDS); - this.ifaceAcs.add(InterfaceActions.CAN_CLICK); - this.satIface = Interfaces.SAT_PANEL; - } - - public void writeToNBT(NBTTagCompound nbt) { - nbt.setLong("lastOp", lastOp); - } - - public void readFromNBT(NBTTagCompound nbt) { - lastOp = nbt.getLong("lastOp"); - } - - public void onClick(World world, int x, int z) { - - if(lastOp + 10000 < System.currentTimeMillis()) { - lastOp = System.currentTimeMillis(); - - int y = world.getHeightValue(x, z); - - EntityDeathBlast blast = new EntityDeathBlast(world); - blast.posX = x; - blast.posY = y; - blast.posZ = z; - - world.spawnEntityInWorld(blast); - } - } -} diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index 4249dd8db..5956f0f3c 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -5,6 +5,6 @@ import com.hbm.itempool.ItemPoolsSatellite; public class SatelliteLunarMiner extends SatelliteMiner { static { - registerCargo(SatelliteLunarMiner.class, ItemPoolsSatellite.POOL_SAT_LUNAR); + SatelliteMiner.registerCargo(SatelliteLunarMiner.class, ItemPoolsSatellite.POOL_SAT_LUNAR); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMapper.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMapper.java index a23ee8e50..9626df120 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMapper.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMapper.java @@ -1,9 +1,59 @@ package com.hbm.saveddata.satellites; -public class SatelliteMapper extends Satellite { +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class SatelliteMapper extends SatelliteBase { + + public static final String CMD_TARGET_LOADED = "targetloaded"; + public static final String CMD_SPOT_PLAYER = "spotplayers"; - public SatelliteMapper() { - this.ifaceAcs.add(InterfaceActions.HAS_MAP); - this.satIface = Interfaces.SAT_PANEL; + public static final int SPOT_PLAYER_MAX_RANGE = 250; + + public SatelliteMapper() { } + + @Override public String getType() { return "NOT_A_SPY_SATELLITE_:)"; } + + @Override + public void onCommandImpl(World world, String... cmd) { + if(cmd.length <= 0) return; + + if(cmd[0].equals(CMD_TARGET_LOADED)) { + this.tx = "" + world.getChunkProvider().chunkExists(targetX >> 4, targetZ >> 4); + this.tx = this.tx.toUpperCase(Locale.US); + return; + } + + if(cmd[0].equals(CMD_SPOT_PLAYER)) { + + List names = new ArrayList(); + + for(Object o : world.playerEntities) { + EntityPlayer player = (EntityPlayer) o; + + int x = (int) Math.floor(player.posX); + int z = (int) Math.floor(player.posZ); + + double dX = x - targetX; + double dZ = z - targetZ; + + if(dX * dX + dZ * dZ <= SPOT_PLAYER_MAX_RANGE * SPOT_PLAYER_MAX_RANGE) { + int height = world.getHeightValue(x, z); + if(height < player.posY + 2) names.add(player.getCommandSenderName()); + } + } + + if(names.isEmpty()) { + this.tx = "NONE"; + return; + } + + this.tx = String.join(";", names); + return; + } } } diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index daca3b22d..538e35edb 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -7,7 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; import java.util.HashMap; -public class SatelliteMiner extends Satellite { +public class SatelliteMiner extends SatelliteBase { /** * {@link WeightedRandomObject} array with loot the satellite will deliver. */ @@ -15,9 +15,9 @@ public class SatelliteMiner extends Satellite { public long lastOp; - public SatelliteMiner() { - this.satIface = Interfaces.NONE; - } + public SatelliteMiner() { } + + @Override public String getType() { return "ASTEROID_MINER"; } public void writeToNBT(NBTTagCompound nbt) { nbt.setLong("lastOp", lastOp); @@ -49,7 +49,7 @@ public class SatelliteMiner extends Satellite { * @return - Returns {@link com.hbm.itempool.ItemPool} key or null if the item is not a mining satellite. */ public static String getCargoForItem(Item satelliteItem) { - Class satelliteClass = itemToClass.getOrDefault(satelliteItem, null); + Class satelliteClass = XSatelliteRegistry.itemToClass.getOrDefault(satelliteItem, null); return satelliteClass != null ? CARGO.getOrDefault(satelliteClass, null) : null; } diff --git a/src/main/java/com/hbm/saveddata/satellites/SatellitePrecisionLaser.java b/src/main/java/com/hbm/saveddata/satellites/SatellitePrecisionLaser.java new file mode 100644 index 000000000..8ab79051e --- /dev/null +++ b/src/main/java/com/hbm/saveddata/satellites/SatellitePrecisionLaser.java @@ -0,0 +1,108 @@ +package com.hbm.saveddata.satellites; + +import java.util.Locale; + +import com.hbm.entity.logic.EntityOrbitalLaser; + +import api.hbm.redstoneoverradio.IRORInteractive; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class SatellitePrecisionLaser extends SatelliteBase { + + public static final String CMD_FIRE = "fire"; + public static final String CMD_CANFIRE = "canfire"; + public static final String CMD_SETENTITYTARGET = "setentitytarget"; + + public static final int MAX_TARGET_RANGE = 1_000; + public static final int CHARGE_TIME = 5 * 20; + + public long lastShot; + public int targetedEntity = -1; + + public SatellitePrecisionLaser() { } + + @Override public String getType() { return "ORBITAL_TATOO_REMOVER"; } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("lastShot", lastShot); + nbt.setInteger("targetedEntity", targetedEntity); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + lastShot = nbt.getLong("lastShot"); + targetedEntity = nbt.getInteger("targetedEntity"); + } + + @Override + public void onCommandImpl(World world, String... cmd) { + if(cmd.length <= 0) return; + + if(cmd[0].equals(CMD_FIRE)) { + + if(this.targetedEntity != -1) { + Entity e = world.getEntityByID(this.targetedEntity); + this.targetedEntity = -1; + + if(e == null || e.isDead) return; + + int x = (int) Math.floor(e.posX); + int z = (int) Math.floor(e.posZ); + + double dX = x - targetX; + double dZ = z - targetZ; + + if(dX * dX + dZ * dZ <= MAX_TARGET_RANGE * MAX_TARGET_RANGE) { + this.deathBlast(world, e.posX, e.posY, e.posZ); + return; + } + } + + deathBlast(world, targetX, targetZ); + return; + } + + if(cmd[0].equals(CMD_CANFIRE)) { + this.tx = (lastShot + CHARGE_TIME < world.getTotalWorldTime()) + ""; + this.tx = this.tx.toUpperCase(Locale.US); + return; + } + + if(cmd[0].equals(CMD_SETENTITYTARGET)) { + this.targetedEntity = IRORInteractive.parseInt(cmd[1]); + return; + } + } + + @Override + public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { + this.setTarget(x, z); + this.deathBlast(world, targetX, targetZ); + } + + public void deathBlast(World world, int x, int z) { + int y = world.getHeightValue(x, z); + deathBlast(world, x + 0.5, y, z + 0.5); + } + + public void deathBlast(World world, double x, double y, double z) { + + if(lastShot + CHARGE_TIME < world.getTotalWorldTime()) { + lastShot = world.getTotalWorldTime(); + + EntityOrbitalLaser blast = new EntityOrbitalLaser(world); + blast.posX = x; + blast.posY = y; + blast.posZ = z; + blast.explode(); + + world.spawnEntityInWorld(blast); + } + } +} diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java index 337475080..65199ae1b 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java @@ -1,10 +1,111 @@ package com.hbm.saveddata.satellites; -public class SatelliteRadar extends Satellite { +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import api.hbm.entity.IRadarDetectableNT.RadarScanParams; +import api.hbm.redstoneoverradio.IRORInteractive; +import net.minecraft.entity.Entity; +import net.minecraft.world.World; + +/** + * Basically the AUTOCAL is now mandatory lol lmao + */ +public class SatelliteRadar extends SatelliteBase { - public SatelliteRadar() { - this.ifaceAcs.add(InterfaceActions.HAS_MAP); - this.ifaceAcs.add(InterfaceActions.HAS_RADAR); - this.satIface = Interfaces.SAT_PANEL; + public static final int MAX_SCAN_RANGE = 1_000; + public static RadarScanParams scanParams = new RadarScanParams(true, true, true, false); + + public static final String CMD_SURVEY = "survey"; + public static final String CMD_FILTER = "filter"; + public static final String CMD_COUNT = "count"; + public static final String CMD_GETTARGETID = "gettargetid"; + public static final String CMD_GETPOSITION = "getposition"; + public static final String CMD_GETNAME = "getname"; + + public List cachedRadarResults = new ArrayList(); + public List filteredRadarResults = new ArrayList(); + + public SatelliteRadar() { } + + @Override public String getType() { return "LEO_RADAR"; } + + @Override + public void onCommandImpl(World world, String... cmd) { + if(cmd.length <= 0) return; + + if(cmd[0].equals(CMD_SURVEY)) { + + cachedRadarResults.clear(); + + for(Entity entity : TileEntityMachineRadarNT.matchingEntities) { + if(entity.dimension != world.provider.dimensionId) continue; + + int x = (int) Math.floor(entity.posX); + int z = (int) Math.floor(entity.posZ); + + double dX = x - targetX; + double dZ = z - targetZ; + + if(dX * dX + dZ * dZ <= MAX_SCAN_RANGE * MAX_SCAN_RANGE) { + cachedRadarResults.add(entity); + } + } + + filteredRadarResults = new ArrayList(cachedRadarResults); + return; + } + + if(cmd[0].equals(CMD_FILTER) && cmd.length == 2) { + + filteredRadarResults.clear(); + String filter = cmd[1].toLowerCase(Locale.US); + + for(Entity entity : cachedRadarResults) { + if(entity.isDead) continue; + String classname = entity.getClass().getSimpleName().toLowerCase(Locale.US); + if(classname.contains(filter)) { + filteredRadarResults.add(entity); + } + } + return; + } + + if(cmd[0].equals(CMD_COUNT)) { + this.tx = "" + filteredRadarResults.size(); + return; + } + + if(cmd[0].equals(CMD_GETTARGETID) && cmd.length == 2) { + Entity target = getTargetFromIndex(cmd[1]); + if(target == null) { this.tx = ""; return; } + this.tx = "" + target.getEntityId(); + return; + } + + if(cmd[0].equals(CMD_GETPOSITION) && cmd.length == 2) { + Entity target = getTargetFromIndex(cmd[1]); + if(target == null) { this.tx = ""; return; } + this.tx = (int) Math.floor(target.posX) + ";" + (int) Math.floor(target.posY) + ";" + (int) Math.floor(target.posZ); + return; + } + + if(cmd[0].equals(CMD_GETNAME) && cmd.length == 2) { + Entity target = getTargetFromIndex(cmd[1]); + if(target == null) { this.tx = ""; return; } + this.tx = target.getClass().getSimpleName().toLowerCase(Locale.US); + return; + } + } + + public Entity getTargetFromIndex(String cmd) { + if(filteredRadarResults.size() <= 0) return null; + int index = IRORInteractive.parseInt(cmd, 0, filteredRadarResults.size()); + Entity target = filteredRadarResults.get(index); + if(target.isDead) return null; + return target; } } diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteRelay.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteRelay.java index a7aa0a251..b2d070405 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteRelay.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteRelay.java @@ -5,11 +5,11 @@ import com.hbm.main.MainRegistry; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; -public class SatelliteRelay extends Satellite { +public class SatelliteRelay extends SatelliteBase { - public SatelliteRelay() { - this.satIface = Interfaces.NONE; - } + public SatelliteRelay() { } + + @Override public String getType() { return "RX/TX"; } public void onOrbit(World world, double x, double y, double z) { diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java index ba415c07a..d4cab13b2 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java @@ -4,17 +4,15 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.world.World; -public class SatelliteResonator extends Satellite { +public class SatelliteResonator extends SatelliteBase { - public SatelliteResonator() { - this.coordAcs.add(CoordActions.HAS_Y); - this.satIface = Interfaces.SAT_COORD; - } + public SatelliteResonator() { } + + @Override public String getType() { return "XEN_RELAY"; } public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { - if(!(player instanceof EntityPlayerMP)) - return; + if(!(player instanceof EntityPlayerMP)) return; world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); player.mountEntity(null); diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteScanner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteScanner.java index 7d0ec86ab..0b1434428 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteScanner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteScanner.java @@ -1,9 +1,8 @@ package com.hbm.saveddata.satellites; -public class SatelliteScanner extends Satellite { +public class SatelliteScanner extends SatelliteBase { - public SatelliteScanner() { - this.ifaceAcs.add(InterfaceActions.HAS_ORES); - this.satIface = Interfaces.SAT_PANEL; - } + public SatelliteScanner() { } + + @Override public String getType() { return "DEPTH_SCANNER"; } } diff --git a/src/main/java/com/hbm/saveddata/satellites/XSatelliteRegistry.java b/src/main/java/com/hbm/saveddata/satellites/XSatelliteRegistry.java new file mode 100644 index 000000000..06e1d511f --- /dev/null +++ b/src/main/java/com/hbm/saveddata/satellites/XSatelliteRegistry.java @@ -0,0 +1,90 @@ +package com.hbm.saveddata.satellites; + +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemSatellite.EnumSatType; +import com.hbm.saveddata.SatelliteSavedData; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class XSatelliteRegistry { + + public static final List> satellites = new ArrayList<>(); + public static final HashMap> itemToClass = new HashMap<>(); + + public static void register() { + + registerSatellite(SatelliteMapper.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.SPY)); + registerSatellite(SatelliteScanner.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.SCANNER)); + registerSatellite(SatelliteRadar.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.RADAR)); + registerSatellite(SatelliteDeathRay.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.DEATH_RAY)); + registerSatellite(SatelliteResonator.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.XENIUM_RESONATOR)); + registerSatellite(SatelliteRelay.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.XENIUM_RESONATOR)); + registerSatellite(SatelliteMiner.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.MINER_ASTRO)); + registerSatellite(SatelliteLunarMiner.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.MINER_LUNAR)); + registerSatellite(SatelliteHorizons.class, ModItems.sat_gerald); + registerSatellite(SatellitePrecisionLaser.class, new ComparableStack(ModItems.satellite, 1, EnumSatType.PRECISION_LASER)); + + + registerSatellite(SatelliteMapper.class, ModItems.sat_mapper); + registerSatellite(SatelliteScanner.class, ModItems.sat_scanner); + registerSatellite(SatelliteRadar.class, ModItems.sat_radar); + registerSatellite(SatelliteDeathRay.class, ModItems.sat_laser); + registerSatellite(SatelliteResonator.class, ModItems.sat_resonator); + registerSatellite(SatelliteRelay.class, ModItems.sat_foeq); + registerSatellite(SatelliteMiner.class, ModItems.sat_miner); + registerSatellite(SatelliteLunarMiner.class, ModItems.sat_lunar_miner); + } + + /** + * Register satellite. + * @param sat - Satellite class + * @param item - Satellite item (which will be placed in a rocket) + */ + @Deprecated + public static void registerSatellite(Class sat, Item item) { + if(!itemToClass.containsKey(item) && !itemToClass.containsValue(sat)) { + satellites.add(sat); + itemToClass.put(new ComparableStack(item), sat); + } + } + + public static void registerSatellite(Class sat, ComparableStack item) { + if(!itemToClass.containsKey(item) && !itemToClass.containsValue(sat)) { + satellites.add(sat); + itemToClass.put(item, sat); + } + } + + public static void orbit(World world, ItemStack stack, int freq, double x, double y, double z) { + if(world.isRemote) return; + + SatelliteBase sat = createFromItem(stack); + + if(sat != null) { + SatelliteSavedData data = SatelliteSavedData.getData(world); + data.sats.put(freq, sat); + sat.onOrbit(world, x, y, z); + data.markDirty(); + } + } + + public static SatelliteBase createFromId(int i) { + try { + return satellites.get(i).newInstance(); + } catch(Exception e) { } + return null; + } + + public static SatelliteBase createFromItem(ItemStack stack) { + try { + return itemToClass.get(new ComparableStack(stack).makeSingular()).newInstance(); + } catch(Exception e) { } + return null; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 9e3c6e6fc..1a6a2b354 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -19,10 +19,7 @@ import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; -import com.hbm.saveddata.satellites.SatelliteHorizons; -import com.hbm.saveddata.satellites.SatelliteLaser; -import com.hbm.saveddata.satellites.SatelliteResonator; +import com.hbm.saveddata.satellites.SatelliteBase; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IRadarCommandReceiver; @@ -446,32 +443,14 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I if(link != null && link.getItem() == ModItems.sat_relay) { World world = player.getEntityWorld(); - Satellite sat = SatelliteSavedData.getData(world).getSatFromFreq(ISatChip.getFreqS(link)); - if(sat instanceof SatelliteLaser) { - if(data.hasKey("launchPosX")) { - int x = data.getInteger("launchPosX"); - int z = data.getInteger("launchPosZ"); - worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - sat.onClick(world, x, z); - } - } - if(sat instanceof SatelliteHorizons) { - if(data.hasKey("launchPosX")) { - int x = data.getInteger("launchPosX"); - int z = data.getInteger("launchPosZ"); - int y = 60; //one day I will make radars transmit Y coordinate as well and you will be butchered alhamdulila - worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - sat.onCoordAction(world, player, x, y, z); - } - } - if(sat instanceof SatelliteResonator) { - if(data.hasKey("launchPosX")) { - int x = data.getInteger("launchPosX"); - int z = data.getInteger("launchPosZ"); - int y = world.getTopSolidOrLiquidBlock(x, z); //the top fucking block because I will never make radars transmit Y coordinates as well! - worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - sat.onCoordAction(world, player, x, y, z); - } + SatelliteBase sat = SatelliteSavedData.getData(world).getSatFromFreq(ISatChip.getFreqS(link)); + + if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + int y = 60; //one day I will make radars transmit Y coordinate as well and you will be butchered alhamdulila + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + sat.onCoordAction(world, player, x, y, z); } } if(link != null && link.getItem() == ModItems.radar_linker) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 85b71dd0a..b8b5de866 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -7,7 +7,7 @@ import com.hbm.inventory.gui.GUISatDock; import com.hbm.itempool.ItemPool; import com.hbm.items.ISatChip; import com.hbm.saveddata.SatelliteSavedData; -import com.hbm.saveddata.satellites.Satellite; +import com.hbm.saveddata.satellites.SatelliteBase; import com.hbm.saveddata.satellites.SatelliteMiner; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; @@ -147,7 +147,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent if(slots[15] != null) { int freq = ISatChip.getFreqS(slots[15]); - Satellite sat = data.getSatFromFreq(freq); + SatelliteBase sat = data.getSatFromFreq(freq); int delay = 10 * 60 * 1000; @@ -181,7 +181,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent } if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { - Satellite sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15])); + SatelliteBase sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15])); if(sat != null) unloadCargo((SatelliteMiner) sat); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java index e327f1dac..3fd818bca 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.SatelliteBase; import com.hbm.tileentity.TileEntityTickingBase; import api.hbm.redstoneoverradio.IRORInteractive; @@ -110,11 +111,45 @@ public class TileEntityMachineSatLink extends TileEntityTickingBase implements I @Override public String provideRORValue(String name) { + + if(name.equals(PREFIX_VALUE + connected)) { + return this.connected ? "TRUE" : "FALSE"; + } + + if(name.equals(PREFIX_VALUE + "freq")) { + return "" + this.freq; + } + + if(name.equals(PREFIX_VALUE + "rx")) { + SatelliteSavedData dat = SatelliteSavedData.getData(worldObj); + SatelliteBase sat = dat.getSatFromFreq(this.freq); + if(sat != null) { + return sat.tx; + } + return ""; + } + return null; } @Override public String runRORFunction(String name, String[] params) { + + if(name.equals(PREFIX_FUNCTION + "setfreq") && params.length == 1) { + this.freq = IRORInteractive.parseInt(params[0], 0, 100_000); + this.markChanged(); + } + + if(name.equals(PREFIX_FUNCTION + "tx")) { + SatelliteSavedData dat = SatelliteSavedData.getData(worldObj); + SatelliteBase sat = dat.getSatFromFreq(this.freq); + String[] cmd = String.join(IRORInteractive.PARAM_SEPARATOR, params).split(" "); + if(sat != null) { + sat.onCommand(worldObj, cmd); + } + this.markChanged(); + } + return null; } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 501693dbc..b3534ed0f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3284,25 +3284,19 @@ item.rune_isa.name=Cool Catalyst Matrix item.rune_jera.name=Multiplicative Catalyst Matrix item.rune_thurisaz.name=Additive Catalyst Matrix item.safety_fuse.name=Zündschnur -item.sat_base.name=Satellitenkörper item.sat_chip.name=Satelliten-ID-Chip item.sat_coord.name=Satelliten-Zielmarkierer item.sat_designator.name=Satelliten-Laserzielmarkierer item.sat_foeq.name=PEAF - Mk.I FOEQ Dunasonde mit experimenter nuklearer Schubdüse item.sat_gerald.name=Gerald der Konstruktionsandroid -item.sat_head_laser.name=Todesstrahl -item.sat_head_mapper.name=Hochleistungskamera -item.sat_head_radar.name=Radarschüssel -item.sat_head_resonator.name=Xenium-Resonator -item.sat_head_scanner.name=M700 Oberflächenabtaster item.sat_interface.name=Satelliten-Kontrollinterface -item.sat_laser.name=Orbitaler Todesstrahl -item.sat_lunar_miner.name=Mond-Förderschiff -item.sat_mapper.name=Oberflächen-Abtastungssatellit -item.sat_miner.name=Asteroiden-Förderschiff -item.sat_radar.name=Radar-Überwachungssatellit -item.sat_resonator.name=Xenium-Resonator-Satellit -item.sat_scanner.name=Satellit mit Tiefenscanning-Modul +item.sat_laser.name=Orbitaler Todesstrahl (LEGACY) +item.sat_lunar_miner.name=Mond-Förderschiff (LEGACY) +item.sat_mapper.name=Oberflächen-Abtastungssatellit (LEGACY) +item.sat_miner.name=Asteroiden-Förderschiff (LEGACY) +item.sat_radar.name=Radar-Überwachungssatellit (LEGACY) +item.sat_resonator.name=Xenium-Resonator-Satellit (LEGACY) +item.sat_scanner.name=Satellit mit Tiefenscanning-Modul (LEGACY) item.sawblade.name=Sägeblatt item.schnitzel_vegan.name=Veganes Schnitzel item.schrabidium_axe.name=Schrabidiumaxt @@ -3889,11 +3883,11 @@ tile.block_fiberglass.name=Fiberglasrolle tile.block_fluorite.name=Fluoritblock tile.block_foam.name=Schaum tile.block_graphite.name=Graphitblock -tile.block_graphite_drilled.name=Gebohrtes Graphit -tile.block_graphite_fuel.name=Pile Brennstoff -tile.block_graphite_plutonium.name=Pile Brennstoff (Gebrütet) -tile.block_graphite_rod.name=Pile Steuerstab -tile.block_graphite_source.name=Pile Neutronenquelle +tile.block_graphite_drilled.name=Gebohrtes Graphit (LEGACY) +tile.block_graphite_fuel.name=Pile Brennstoff (LEGACY) +tile.block_graphite_plutonium.name=Pile Brennstoff (Gebrütet) (LEGACY) +tile.block_graphite_rod.name=Pile Steuerstab (LEGACY) +tile.block_graphite_source.name=Pile Neutronenquelle (LEGACY) tile.block_insulator.name=Isolatorrolle tile.block_lead.name=Bleiblock tile.block_lanthanium.name=Lanthanblock @@ -4545,6 +4539,7 @@ tile.machine_rtg_orange.name=Starker RTG tile.machine_rtg_purple.name=Paarvernichtungsgenerator tile.machine_rtg_red.name=Fulminationsgenerator tile.machine_rtg_yellow.name=Australium Supergenerator +tile.machine_satlink.name=Satelliten-Bodenstation tile.machine_satlinker.name=Satelliten-ID-Manager tile.machine_sawmill.name=Stirling-Sägemühle tile.machine_sawmill.desc=Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Minimalaufnahme: 100 TU/t, Maximalaufnahme: 300 TU/t diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 06542768a..8448a7f7a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3839,20 +3839,20 @@ item.pile_rod.waste.name=Chicago Pile Nuclear Waste Rod item.pile_rod.waste.desc=Highly reactive end product from leaving a Chicago Pile fuel rod in the reactor for too long. item.pile_rod.zr.name=Chicago Pile Zirconium Rod item.pile_rod.zr.desc=Inert zirconium rod which is transparent to neutrons. Ideal for pushing other rods safely out of the reactor. -item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle -item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux -item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core -item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=§d[Neutron Source] -item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. -item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=§d[Neutron Source] -item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pile_rod_boron.name=Chicago Pile Control Rod (LEGACY) +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle (LEGACY) +item.pile_rod_detector.name=Chicago Pile Control & Detector Rod (LEGACY) +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux (LEGACY) +item.pile_rod_lithium.name=Chicago Pile Lithium Cell (LEGACY) +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core (LEGACY) +item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod (LEGACY) +item.pile_rod_plutonium.desc=§d[Neutron Source] (LEGACY) +item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod (LEGACY) +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. (LEGACY) +item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source (LEGACY) +item.pile_rod_source.desc=§d[Neutron Source] (LEGACY) +item.pile_rod_uranium.name=Chicago Pile Uranium Rod (LEGACY) +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample (LEGACY) item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -4395,26 +4395,29 @@ item.rune_isa.name=Cool Catalyst Matrix item.rune_jera.name=Multiplicative Catalyst Matrix item.rune_thurisaz.name=Additive Catalyst Matrix item.safety_fuse.name=Safety Fuse -item.sat_base.name=Satellite Base item.sat_chip.name=Satellite ID-Chip item.sat_coord.name=Satellite Designator item.sat_designator.name=Satellite Laser Designator -item.sat_relay.name=Satellite Radar Relay -item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion +item.sat_relay.name=Satellite Radar Relay (LEGACY) +item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion (LEGACY) item.sat_gerald.name=Gerald The Construction Android -item.sat_head_laser.name=Death Ray -item.sat_head_mapper.name=High-Gain Optical Camera -item.sat_head_radar.name=Radar Dish -item.sat_head_resonator.name=Xenium Resonator -item.sat_head_scanner.name=M700 Survey Scanner item.sat_interface.name=Satellite Control Interface -item.sat_laser.name=Orbital Death Ray -item.sat_lunar_miner.name=Lunar Mining Ship -item.sat_mapper.name=Surface Mapping Satellite -item.sat_miner.name=Asteroid Mining Ship -item.sat_radar.name=Radar Survey Satellite -item.sat_resonator.name=Xenium Resonator Satellite -item.sat_scanner.name=Satellite with Depth-Resource Scanning Module +item.sat_laser.name=Orbital Death Ray (LEGACY) +item.sat_lunar_miner.name=Lunar Mining Ship (LEGACY) +item.sat_mapper.name=Surface Mapping Satellite (LEGACY) +item.sat_miner.name=Asteroid Mining Ship (LEGACY) +item.sat_radar.name=Radar Survey Satellite (LEGACY) +item.sat_resonator.name=Xenium Resonator Satellite (LEGACY) +item.sat_scanner.name=Satellite with Depth-Resource Scanning Module (LEGACY) +item.satellite.death_ray.name=Orbital Death Ray +item.satellite.miner_astro.name=Asteroid Mining Ship +item.satellite.miner_lunar.name=Lunar Mining Ship +item.satellite.precision_laser.name=Orbital Precision Laser +item.satellite.radar.name=Radar Satellite +item.satellite.relay.name=Relay Satellite +item.satellite.scanner.name=Depth Scanning Satellite +item.satellite.spy.name=Spy Satellite +item.satellite.xenium_resonator.name=Xenium Resonator Satellite item.sawblade.name=Sawblade item.schnitzel_vegan.name=Vegan Schnitzel item.schrabidium_axe.name=Schrabidium Axe @@ -5100,14 +5103,14 @@ tile.block_fluorite.name=Block of Fluorite tile.block_foam.name=Foam tile.block_insulator.name=Roll of Insulation tile.block_graphite.name=Block of Graphite -tile.block_graphite_detector.name=Pile Neutron Detector -tile.block_graphite_drilled.name=Drilled Graphite -tile.block_graphite_fuel.name=Pile Fuel -tile.block_graphite_lithium.name=Pile Lithium Fuel -tile.block_graphite_plutonium.name=Pile Fuel (Bred) -tile.block_graphite_rod.name=Pile Control Rod -tile.block_graphite_source.name=Pile Neutron Source -tile.block_graphite_tritium.name=Pile Lithium Fuel (Bred) +tile.block_graphite_detector.name=Pile Neutron Detector (LEGACY) +tile.block_graphite_drilled.name=Drilled Graphite (LEGACY) +tile.block_graphite_fuel.name=Pile Fuel (LEGACY) +tile.block_graphite_lithium.name=Pile Lithium Fuel (LEGACY) +tile.block_graphite_plutonium.name=Pile Fuel (Bred) (LEGACY) +tile.block_graphite_rod.name=Pile Control Rod (LEGACY) +tile.block_graphite_source.name=Pile Neutron Source (LEGACY) +tile.block_graphite_tritium.name=Pile Lithium Fuel (Bred) (LEGACY) tile.block_lead.name=Block of Lead tile.block_lanthanium.name=Block of Lanthanium tile.block_lithium.name=Block of Lithium @@ -5816,6 +5819,7 @@ tile.machine_rtg_orange.name=Strong RT Generator tile.machine_rtg_purple.name=Antimatter Annihilation Generator tile.machine_rtg_red.name=Fulmination Generator tile.machine_rtg_yellow.name=Australium Superfuel Reactor +tile.machine_satlink.name=Satellite Ground Station tile.machine_satlinker.name=Satellite ID Manager tile.machine_sawmill.name=Stirling Sawmill tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_side.png index 161f74fcc..7993518c0 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_side.png and b/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_top.png index 78f60404d..954ccd7a4 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_top.png and b/src/main/resources/assets/hbm/textures/blocks/machine_satlinker_top.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_sat_linker.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_sat_linker.png index a1262001b..e9601d8f4 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_sat_linker.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_sat_linker.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_heater.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_heater.png deleted file mode 100644 index 03abf02aa..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_heater.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png deleted file mode 100644 index f405049ae..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/satellites/gui_sat_interface.png b/src/main/resources/assets/hbm/textures/gui/satellites/gui_sat_interface.png deleted file mode 100644 index b3781407b..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/satellites/gui_sat_interface.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_base.png b/src/main/resources/assets/hbm/textures/items/sat_base.png deleted file mode 100644 index 87405de61..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_head_laser.png b/src/main/resources/assets/hbm/textures/items/sat_head_laser.png deleted file mode 100644 index 0fabf144d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_head_laser.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_head_mapper.png b/src/main/resources/assets/hbm/textures/items/sat_head_mapper.png deleted file mode 100644 index d5f5a674b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_head_mapper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_head_radar.png b/src/main/resources/assets/hbm/textures/items/sat_head_radar.png deleted file mode 100644 index 823a13240..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_head_radar.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_head_resonator.png b/src/main/resources/assets/hbm/textures/items/sat_head_resonator.png deleted file mode 100644 index e93540b95..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_head_resonator.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_head_scanner.png b/src/main/resources/assets/hbm/textures/items/sat_head_scanner.png deleted file mode 100644 index 2ddbb8b07..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_head_scanner.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/sat_interface.png b/src/main/resources/assets/hbm/textures/items/sat_interface.png deleted file mode 100644 index 0fc2a8127..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/sat_interface.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.death_ray.png b/src/main/resources/assets/hbm/textures/items/satellite.death_ray.png new file mode 100644 index 000000000..e546efaee Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.death_ray.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.miner_astro.png b/src/main/resources/assets/hbm/textures/items/satellite.miner_astro.png new file mode 100644 index 000000000..a006535d7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.miner_astro.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.miner_lunar.png b/src/main/resources/assets/hbm/textures/items/satellite.miner_lunar.png new file mode 100644 index 000000000..2999b8b08 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.miner_lunar.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.precision_laser.png b/src/main/resources/assets/hbm/textures/items/satellite.precision_laser.png new file mode 100644 index 000000000..be29aac98 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.precision_laser.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.radar.png b/src/main/resources/assets/hbm/textures/items/satellite.radar.png new file mode 100644 index 000000000..4034dcfd8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.radar.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.relay.png b/src/main/resources/assets/hbm/textures/items/satellite.relay.png new file mode 100644 index 000000000..08a4f2164 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.relay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.scanner.png b/src/main/resources/assets/hbm/textures/items/satellite.scanner.png new file mode 100644 index 000000000..b0039b9df Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.scanner.png differ diff --git a/src/main/resources/assets/hbm/textures/items/satellite.spy.png b/src/main/resources/assets/hbm/textures/items/satellite.spy.png new file mode 100644 index 000000000..75c95afa9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.spy.png differ