diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java new file mode 100644 index 000000000..87011df90 --- /dev/null +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -0,0 +1,58 @@ +package com.hbm.handler.guncfg; + +import java.util.ArrayList; + +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.GunConfiguration; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; + +public class GunDetonatorFactory { + + public static GunConfiguration getDetonatorConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 1; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.hasSights = false; + config.reloadDuration = 20; + config.firingDuration = 0; + config.ammoCap = 1; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.DUAL; + config.durability = 1_000_000_000; + config.reloadSound = GunConfiguration.RSOUND_LAUNCHER; + config.firingSound = "hbm:weapon.dartShoot"; + config.reloadSoundEnd = false; + config.showAmmo = true; + + config.name = "Hopeville Laser Detonator"; + config.manufacturer = "WestTek"; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.R5_NORMAL_BOLT); + config.config.add(BulletConfigSyncingUtil.R5_EXPLOSIVE_BOLT); + config.config.add(BulletConfigSyncingUtil.R5_DU_BOLT); + config.config.add(BulletConfigSyncingUtil.R5_STAR_BOLT); + config.config.add(BulletConfigSyncingUtil.CHL_R5_BOLT); + config.config.add(BulletConfigSyncingUtil.G12_NORMAL); + config.config.add(BulletConfigSyncingUtil.G12_INCENDIARY); + config.config.add(BulletConfigSyncingUtil.G12_SHRAPNEL); + config.config.add(BulletConfigSyncingUtil.G12_DU); + config.config.add(BulletConfigSyncingUtil.G12_SLEEK); + config.config.add(BulletConfigSyncingUtil.G12_AM); + config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL); + config.config.add(BulletConfigSyncingUtil.NUKE_LOW); + config.config.add(BulletConfigSyncingUtil.NUKE_SAFE); + config.config.add(BulletConfigSyncingUtil.NUKE_HIGH); + config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL); + config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_LOW); + config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_SAFE); + config.config.add(BulletConfigSyncingUtil.NUKE_MIRV_HIGH); + + return config; + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ca2ce4839..cbfc530a8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1690,6 +1690,7 @@ public class ModItems { public static Item gun_dampfmaschine; public static Item gun_waluigi; public static Item gun_darter; + public static Item gun_detonator; public static Item crucible; @@ -4356,6 +4357,7 @@ public class ModItems { gun_moist_nugget = new ItemNugget(3, false).setUnlocalizedName("gun_moist_nugget").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_moist_nugget"); gun_dampfmaschine = new GunDampfmaschine().setUnlocalizedName("gun_dampfmaschine").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_dampfmaschine"); gun_darter = new ItemGunDart(GunDartFactory.getDarterConfig()).setFull3D().setUnlocalizedName("gun_darter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); + gun_detonator = new ItemGunDetonator(GunDetonatorFactory.getDetonatorConfig()).setUnlocalizedName("gun_detonator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); @@ -7072,6 +7074,7 @@ public class ModItems { GameRegistry.registerItem(gun_moist_nugget, gun_moist_nugget.getUnlocalizedName()); GameRegistry.registerItem(gun_dampfmaschine, gun_dampfmaschine.getUnlocalizedName()); GameRegistry.registerItem(gun_darter, gun_darter.getUnlocalizedName()); + GameRegistry.registerItem(gun_detonator, gun_detonator.getUnlocalizedName()); GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); //Ammo diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index b85fa9ee8..8a9e0cef6 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -7,12 +7,10 @@ import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.handler.HbmKeybinds; -import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; import com.hbm.packet.AuxParticlePacketNT; @@ -36,7 +34,6 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; @@ -110,7 +107,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(mainConfig.reloadType != mainConfig.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { - if(Keyboard.isKeyDown(HbmKeybinds.reloadKey.getKeyCode()) && (getMag(stack) < mainConfig.ammoCap || (mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0))) { + if(Keyboard.isKeyDown(HbmKeybinds.reloadKey.getKeyCode()) && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); setIsReloading(stack, true); resetReloadCycle(stack); @@ -444,7 +441,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { //initiates a reload public void startReloadAction(ItemStack stack, World world, EntityPlayer player) { - if(player.isSneaking() && mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0) { + if(player.isSneaking() && hasInfinity(stack, mainConfig)) { if(this.getMag(stack) == mainConfig.ammoCap) { this.setMag(stack, 0); @@ -618,7 +615,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(!main) config = altConfig; - if(config.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0) + if(hasInfinity(stack, config)) return; @@ -629,6 +626,10 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { } } + public boolean hasInfinity(ItemStack stack, GunConfiguration config) { + return config.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; + } + /*//returns main config from itemstack public static GunConfiguration extractConfig(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java b/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java new file mode 100644 index 000000000..ae89da2c9 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGunDetonator.java @@ -0,0 +1,17 @@ +package com.hbm.items.weapon; + +import com.hbm.handler.GunConfiguration; + +import net.minecraft.item.ItemStack; + +public class ItemGunDetonator extends ItemGunBase { + + public ItemGunDetonator(GunConfiguration config) { + super(config); + } + + @Override + public boolean hasInfinity(ItemStack stack, GunConfiguration config) { + return true; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 052f76f67..e7249819f 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -50,7 +50,6 @@ import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.items.ModItems; @@ -421,6 +420,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolter_digamma, new ItemRenderWeaponBolter()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_ar15, new ItemRenderWeaponAR15()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_detonator, new ItemRenderDetonatorLaser()); MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9a26dad9d..a04e18cb1 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -470,6 +470,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', ModItems.circuit_gold }); addShapelessAuto(new ItemStack(ModBlocks.charge_dynamite, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.charge_miner, 1), new Object[] { " F ", "FCF", " F ", 'F', Items.flint, 'C', ModBlocks.charge_dynamite }); + addShapelessAuto(new ItemStack(ModBlocks.charge_semtex, 1), new Object[] { ModItems.stick_semtex, ModItems.stick_semtex, ModItems.stick_semtex, ModItems.ducttape }); + addShapelessAuto(new ItemStack(ModBlocks.charge_c4, 1), new Object[] { ModItems.stick_c4, ModItems.stick_c4, ModItems.stick_c4, ModItems.ducttape }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); diff --git a/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java b/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java index f7e2f7e35..4b0fa4320 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java +++ b/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java @@ -3,14 +3,10 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; -import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; public class ItemRenderDetonatorLaser implements IItemRenderer { @@ -87,11 +83,13 @@ public class ItemRenderDetonatorLaser implements IItemRenderer { } ResourceManager.detonator_laser.renderPart("Main"); + GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glColor3f(1F, 0F, 0F); ResourceManager.detonator_laser.renderPart("Lights"); GL11.glColor3f(1F, 1F, 1F); GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 19f7d6f45..688bf4c79 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -7,7 +7,6 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.fluid.FluidType; -import com.hbm.main.MainRegistry; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 8b9423231..93351919e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3015,8 +3015,10 @@ tile.broadcaster_pc.name=Korrupter Sender tile.burning_earth.name=Brennendes Gras tile.cable_detector.name=Redstone-Stromschalter tile.cable_switch.name=Stromschalter +tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe tile.charge_miner.name=Bergbauladung mit Zeitzünder +tile.charge_semtex.name=Semtex-Bergbauladung tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block tile.chlorine_gas.name=Chlorgas diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a0b3507cf..17ac984e2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3379,8 +3379,10 @@ tile.broadcaster_pc.name=Corrupted Broadcaster tile.burning_earth.name=Burning Grass tile.cable_detector.name=Redstone Power Switch tile.cable_switch.name=Power Switch +tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb tile.charge_miner.name=Timed Mining Charge +tile.charge_semtex.name=Semtex Mining Charge tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block tile.chlorine_gas.name=Chlorine Gas diff --git a/src/main/resources/assets/hbm/textures/items/stick_c4.png b/src/main/resources/assets/hbm/textures/items/stick_c4.png index b501b3342..7648302fa 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stick_c4.png and b/src/main/resources/assets/hbm/textures/items/stick_c4.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_c4_naked.png b/src/main/resources/assets/hbm/textures/items/stick_c4_naked.png new file mode 100644 index 000000000..2a839b198 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/stick_c4_naked.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_semtex.png b/src/main/resources/assets/hbm/textures/items/stick_semtex.png index 662d272ad..fcebfdc4d 100644 Binary files a/src/main/resources/assets/hbm/textures/items/stick_semtex.png and b/src/main/resources/assets/hbm/textures/items/stick_semtex.png differ diff --git a/src/main/resources/assets/hbm/textures/items/stick_semtex_naked.png b/src/main/resources/assets/hbm/textures/items/stick_semtex_naked.png new file mode 100644 index 000000000..7a581d061 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/stick_semtex_naked.png differ