diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index b9eb2e2c6..0bee8623f 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -257,6 +257,8 @@ tile.turret_cwis.name=Phalanx Mk-15 CIWS tile.turret_cheapo.name=Billigsdorfer Gatling-Geschütz tile.machine_radar.name=Radar container.radar=Radar +tile.machine_forcefield.name=Kraftfeldgenerator +container.forceField=Kraftfeldgenerator tile.machine_satlinker.name=Satelliten-ID-Manager container.satLinker=SatLink-Gerät tile.machine_telelinker.name=Geschütz-Telemetrie-Manager @@ -848,6 +850,8 @@ item.upgrade_fortune_3.name=Lila Maschinenupgrade Mk.III item.upgrade_afterburn_1.name=Pinkes Maschinenupgrade Mk.I item.upgrade_afterburn_2.name=Pinkes Maschinenupgrade Mk.II item.upgrade_afterburn_3.name=Pinkes Maschinenupgrade Mk.III +item.upgrade_radius.name=Türkises Emitterupgrade +item.upgrade_health.name=Pinkes Emitterupgrade item.fusion_core.name=Fusionskern item.energy_core.name=Selbstgebauter Energiekern diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index d79432fa3..86391ba4e 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -270,6 +270,8 @@ tile.turret_cwis.name=Phalanx Mk-15 CIWS tile.turret_cheapo.name=Cheapo Gatling Sentry tile.machine_radar.name=Radar container.radar=Radar +tile.machine_forcefield.name=Forcefield Emitter +container.forceField=Forcefield Emitter tile.machine_satlinker.name=Satellite ID Manager container.satLinker=SatLink Device tile.machine_telelinker.name=Turret Telemetry Linker @@ -848,6 +850,8 @@ item.upgrade_fortune_3.name=Purple Machine Upgrade Mk.III item.upgrade_afterburn_1.name=Pink Machine Upgrade Mk.I item.upgrade_afterburn_2.name=Pink Machine Upgrade Mk.II item.upgrade_afterburn_3.name=Pink Machine Upgrade Mk.III +item.upgrade_radius.name=Teal Emitter Upgrade +item.upgrade_health.name=Pink Emitter Upgrade item.fusion_core.name=Fusion Core item.energy_core.name=Makeshift Energy Core diff --git a/assets/hbm/textures/blocks/machine_forcefield.png b/assets/hbm/textures/blocks/machine_forcefield.png new file mode 100644 index 000000000..317312824 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_forcefield.png differ diff --git a/assets/hbm/textures/models/forcefield_base.png b/assets/hbm/textures/models/forcefield_base.png new file mode 100644 index 000000000..a023faa6f Binary files /dev/null and b/assets/hbm/textures/models/forcefield_base.png differ diff --git a/assets/hbm/textures/models/forcefield_top.png b/assets/hbm/textures/models/forcefield_top.png new file mode 100644 index 000000000..398a762fb Binary files /dev/null and b/assets/hbm/textures/models/forcefield_top.png differ diff --git a/com/hbm/blocks/machine/MachineForceField.java b/com/hbm/blocks/machine/MachineForceField.java index 460eabd31..5750e4e50 100644 --- a/com/hbm/blocks/machine/MachineForceField.java +++ b/com/hbm/blocks/machine/MachineForceField.java @@ -1,10 +1,14 @@ package com.hbm.blocks.machine; +import java.util.Random; + import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityForceField; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -50,5 +54,39 @@ public class MachineForceField extends BlockContainer { return true; } } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World world, int x, int y, int z, Random rand) + { + TileEntityForceField te = (TileEntityForceField)world.getTileEntity(x, y, z); + + if(te.isOn && te.cooldown == 0 && te.power > 0) { + for(int i = 0; i < 4; i++) { + float f = x; + float f1 = y + 2F; + float f2 = z; + float f3 = 0.52F; + float f4 = rand.nextFloat(); + float f5 = rand.nextFloat(); + + if(te.color == 0xFF0000) + world.spawnParticle("lava", f + f4, f1, f2 + f5, 0.0D, 0.0D, 0.0D); + else + world.spawnParticle("reddust", f + f4, f1, f2 + f5, 0.0D, 0.0D, 0.0D); + } + } else if(te.cooldown > 0) { + for(int i = 0; i < 4; i++) { + float f = x; + float f1 = y + 2F; + float f2 = z; + float f3 = 0.52F; + float f4 = rand.nextFloat(); + float f5 = rand.nextFloat(); + + world.spawnParticle("smoke", f + f4, f1, f2 + f5, 0.0D, 0.0D, 0.0D); + } + } + } } diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 1af71c52a..4b9fecbb9 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -203,6 +203,10 @@ public class ResourceManager { public static final ResourceLocation radar_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_base.png"); public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png"); + //Forcefield + public static final ResourceLocation forcefield_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_base.png"); + public static final ResourceLocation forcefield_top_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_top.png"); + //Bombs public static final ResourceLocation bomb_solinium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ufp.png"); public static final ResourceLocation n2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n2.png"); diff --git a/com/hbm/render/tileentity/RenderMachineForceField.java b/com/hbm/render/tileentity/RenderMachineForceField.java index d5aedfd1f..e48ea7abc 100644 --- a/com/hbm/render/tileentity/RenderMachineForceField.java +++ b/com/hbm/render/tileentity/RenderMachineForceField.java @@ -21,7 +21,7 @@ public class RenderMachineForceField extends TileEntitySpecialRenderer { GL11.glDisable(GL11.GL_CULL_FACE); GL11.glRotatef(180, 0F, 1F, 0F); - bindTexture(ResourceManager.radar_body_tex); + bindTexture(ResourceManager.forcefield_base_tex); ResourceManager.radar_body.renderAll(); @@ -33,7 +33,7 @@ public class RenderMachineForceField extends TileEntitySpecialRenderer { int segments = (int)(16 + ff.radius * 0.125); - bindTexture(ResourceManager.universal); + bindTexture(ResourceManager.forcefield_top_tex); if(ff.isOn && ff.health > 0 && ff.power > 0 && ff.cooldown == 0) { generateSphere(segments, segments * 2, ff.radius, ff.color);