From d6b741b54fd877ee2e4f90b97e287cf8c95a13ec Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 15 Dec 2021 16:06:58 +0100 Subject: [PATCH 1/2] ReC nuclear waste hazard compat, some missing textures --- .../java/com/hbm/entity/mob/EntityGhost.java | 54 ++++++++++++++++++ .../java/com/hbm/handler/HazmatRegistry.java | 16 +++--- .../java/com/hbm/hazard/HazardRegistry.java | 32 ++++++++++- .../inventory/recipes/ShredderRecipes.java | 6 +- .../java/com/hbm/items/ItemEnumMulti.java | 16 +++++- src/main/java/com/hbm/items/ModItems.java | 2 +- .../special/ItemCircuitStarComponent.java | 2 +- .../hbm/items/special/ItemPlasticScrap.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../hbm/render/entity/mob/RenderGhost.java | 31 ++++++++++ .../machine/TileEntityHadronPower.java | 6 +- src/main/java/com/hbm/util/ArmorUtil.java | 6 +- src/main/java/com/hbm/util/Compat.java | 54 ++++++++++++++++++ .../items/circuit_star_component.chipset.png | Bin 0 -> 328 bytes .../items/circuit_star_component.cpu.png | Bin 0 -> 235 bytes .../items/circuit_star_component.ram.png | Bin 0 -> 269 bytes .../items/circuit_star_piece.board_blank.png | Bin 0 -> 256 bytes .../circuit_star_piece.board_transistor.png | Bin 0 -> 169 bytes .../items/circuit_star_piece.bridge_bios.png | Bin 0 -> 174 bytes .../items/circuit_star_piece.bridge_bus.png | Bin 0 -> 265 bytes .../circuit_star_piece.bridge_chipset.png | Bin 0 -> 264 bytes .../items/circuit_star_piece.bridge_cmos.png | Bin 0 -> 165 bytes .../items/circuit_star_piece.bridge_io.png | Bin 0 -> 200 bytes .../items/circuit_star_piece.bridge_north.png | Bin 0 -> 218 bytes .../items/circuit_star_piece.bridge_south.png | Bin 0 -> 240 bytes .../items/circuit_star_piece.cpu_cache.png | Bin 0 -> 161 bytes .../items/circuit_star_piece.cpu_clock.png | Bin 0 -> 187 bytes .../items/circuit_star_piece.cpu_ext.png | Bin 0 -> 192 bytes .../items/circuit_star_piece.cpu_logic.png | Bin 0 -> 176 bytes .../items/circuit_star_piece.cpu_register.png | Bin 0 -> 174 bytes .../items/circuit_star_piece.cpu_socket.png | Bin 0 -> 235 bytes .../items/circuit_star_piece.mem_16k_a.png | Bin 0 -> 176 bytes .../items/circuit_star_piece.mem_16k_b.png | Bin 0 -> 178 bytes .../items/circuit_star_piece.mem_16k_c.png | Bin 0 -> 179 bytes .../items/circuit_star_piece.mem_16k_d.png | Bin 0 -> 176 bytes .../items/circuit_star_piece.mem_socket.png | Bin 0 -> 165 bytes 36 files changed, 207 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGhost.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderGhost.java create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_component.chipset.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_component.cpu.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_component.ram.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_blank.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_transistor.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_bios.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_bus.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_chipset.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_cmos.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_io.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_north.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_south.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_cache.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_clock.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_ext.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_logic.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_register.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_socket.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_a.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_b.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_c.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_d.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_socket.png diff --git a/src/main/java/com/hbm/entity/mob/EntityGhost.java b/src/main/java/com/hbm/entity/mob/EntityGhost.java new file mode 100644 index 000000000..e9040294f --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGhost.java @@ -0,0 +1,54 @@ +package com.hbm.entity.mob; + +import java.util.List; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class EntityGhost extends EntityCreature { + + public EntityGhost(World world) { + super(world); + this.tasks.addTask(0, new EntityAISwimming(this)); + this.tasks.addTask(1, new EntityAIWander(this, 1.0D)); + this.tasks.addTask(2, new EntityAILookIdle(this)); + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(8.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.2D); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + double despawnRange = 100; + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(despawnRange, despawnRange, despawnRange)); + if(!players.isEmpty()) + this.setDead(); + } + } + + @Override + public void setHealth(float health) { + super.setHealth(this.getMaxHealth()); + } + + @Override + public boolean isEntityInvulnerable() { + return true; + } +} diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index 8ae14bbcd..539fd4966 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -66,19 +66,19 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.hazmat_legs_grey, hazGray * legs); HazmatRegistry.registerHazmat(ModItems.hazmat_boots_grey, hazGray * boots); - Item rec_helmet = Compat.tryLoadItem("ReactorCraft", "reactorcraft_item_hazhelmet"); - Item rec_chest = Compat.tryLoadItem("ReactorCraft", "reactorcraft_item_hazchest"); - Item rec_legs = Compat.tryLoadItem("ReactorCraft", "reactorcraft_item_hazlegs"); - Item rec_boots = Compat.tryLoadItem("ReactorCraft", "reactorcraft_item_hazboots"); + Item rec_helmet = Compat.tryLoadItem(Compat.MOD_REC, "reactorcraft_item_hazhelmet"); + Item rec_chest = Compat.tryLoadItem(Compat.MOD_REC, "reactorcraft_item_hazchest"); + Item rec_legs = Compat.tryLoadItem(Compat.MOD_REC, "reactorcraft_item_hazlegs"); + Item rec_boots = Compat.tryLoadItem(Compat.MOD_REC, "reactorcraft_item_hazboots"); if(rec_helmet != null) HazmatRegistry.registerHazmat(rec_helmet, hazGray * helmet); if(rec_chest != null) HazmatRegistry.registerHazmat(rec_chest, hazGray * chest); if(rec_legs != null) HazmatRegistry.registerHazmat(rec_legs, hazGray * legs); if(rec_boots != null) HazmatRegistry.registerHazmat(rec_boots, hazGray * boots); - Item efn_helmet = Compat.tryLoadItem("etfuturum", "netherite_helmet"); - Item efn_chest = Compat.tryLoadItem("etfuturum", "netherite_chestplate"); - Item efn_legs = Compat.tryLoadItem("etfuturum", "netherite_leggings"); - Item efn_boots = Compat.tryLoadItem("etfuturum", "netherite_boots"); + Item efn_helmet = Compat.tryLoadItem(Compat.MOD_EF, "netherite_helmet"); + Item efn_chest = Compat.tryLoadItem(Compat.MOD_EF, "netherite_chestplate"); + Item efn_legs = Compat.tryLoadItem(Compat.MOD_EF, "netherite_leggings"); + Item efn_boots = Compat.tryLoadItem(Compat.MOD_EF, "netherite_boots"); if(efn_helmet != null) HazmatRegistry.registerHazmat(efn_helmet, star * helmet); if(efn_chest != null) HazmatRegistry.registerHazmat(efn_chest, star * chest); if(efn_legs != null) HazmatRegistry.registerHazmat(efn_legs, star * legs); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 3d3de9bf2..4a86fc9ad 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -8,10 +8,13 @@ import com.hbm.hazard.modifier.*; import com.hbm.hazard.transformer.HazardTransformerRadiationNBT; import com.hbm.hazard.type.*; import com.hbm.items.ModItems; +import com.hbm.util.Compat; +import com.hbm.util.Compat.ReikaIsotope; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; public class HazardRegistry { @@ -36,6 +39,23 @@ public class HazardRegistry { //AM241 432a α 008.50Rad/s //AM242 141a β− 009.50Rad/s + //simplified groups for ReC compat + public static final float gen_S = 10_000F; + public static final float gen_H = 2_000F; + public static final float gen_10D = 100F; + public static final float gen_100D = 80F; + public static final float gen_1Y = 50F; + public static final float gen_10Y = 30F; + public static final float gen_100Y = 10F; + public static final float gen_1K = 7.5F; + public static final float gen_10K = 6.25F; + public static final float gen_100K = 5F; + public static final float gen_1M = 2.5F; + public static final float gen_10M = 1.5F; + public static final float gen_100M = 1F; + public static final float gen_1B = 0.5F; + public static final float gen_10B = 0.1F; + public static final float co60 = 30.0F; public static final float tc99 = 2.75F; public static final float i131 = 150.0F; @@ -301,7 +321,17 @@ public class HazardRegistry { HazardSystem.register(ModBlocks.fallout, makeData(RADIATION, fo * powder * 2)); HazardSystem.register(ModBlocks.block_fallout, makeData(RADIATION, yc * block * powder_mult)); - //TODO + /* + * ReC compat + */ + Item recWaste = Compat.tryLoadItem(Compat.MOD_REC, "reactorcraft_item_waste"); + if(recWaste != null) { + for(ReikaIsotope i : ReikaIsotope.values()) { + if(i.getRad() > 0) { + HazardSystem.register(new ItemStack(recWaste, 1, i.ordinal()), makeData(RADIATION, i.getRad())); + } + } + } } public static void registerTrafos() { diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index d136cd2f7..ea72ee4a5 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -314,7 +314,7 @@ public class ShredderRecipes { /* * GC COMPAT */ - Item gcMoonBlock = Compat.tryLoadItem("GalacticraftCore", "moonBlock"); + Item gcMoonBlock = Compat.tryLoadItem(Compat.MOD_GCC, "moonBlock"); if(gcMoonBlock != null) { ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil @@ -323,9 +323,9 @@ public class ShredderRecipes { /* * AR COMPAT */ - Item arMoonTurf = Compat.tryLoadItem("advancedrocketry", "turf"); + Item arMoonTurf = Compat.tryLoadItem(Compat.MOD_AR, "turf"); if(arMoonTurf != null) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf - Item arMoonTurfDark = Compat.tryLoadItem("advancedrocketry", "turfDark"); + Item arMoonTurfDark = Compat.tryLoadItem(Compat.MOD_AR, "turfDark"); if(arMoonTurfDark != null) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds } diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index 50e667ec1..f68a52470 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -18,11 +18,13 @@ public class ItemEnumMulti extends Item { //hell yes, now we're thinking with enums! private Class theEnum; + private boolean multiName; private boolean multiTexture; - public ItemEnumMulti(Class theEnum, boolean multiTexture) { + public ItemEnumMulti(Class theEnum, boolean multiName, boolean multiTexture) { this.setHasSubtypes(true); this.theEnum = theEnum; + this.multiName = multiName; this.multiTexture = multiTexture; } @@ -85,4 +87,16 @@ public class ItemEnumMulti extends Item { public ItemStack stackFromEnum(Enum num) { return stackFromEnum(1, num); } + + @Override + public String getUnlocalizedName(ItemStack stack) { + + if(multiName) { + + Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + } else { + return super.getUnlocalizedName(stack); + } + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2a4cda75c..59673bf10 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3063,7 +3063,7 @@ public class ModItems { circuit_bismuth = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_bismuth"); circuit_tantalium_raw = new Item().setUnlocalizedName("circuit_tantalium_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_tantalium_raw"); circuit_tantalium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_tantalium"); - circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); + circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); circuit_star_component = (ItemEnumMulti) new ItemCircuitStarComponent().setUnlocalizedName("circuit_star_component").setCreativeTab(null); circuit_star = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_star").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_star"); circuit_targeting_tier1 = new Item().setUnlocalizedName("circuit_targeting_tier1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_targeting_tier1"); diff --git a/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java b/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java index dd931b41e..840d79ea9 100644 --- a/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java +++ b/src/main/java/com/hbm/items/special/ItemCircuitStarComponent.java @@ -5,7 +5,7 @@ import com.hbm.items.ItemEnumMulti; public class ItemCircuitStarComponent extends ItemEnumMulti { public ItemCircuitStarComponent() { - super(CircuitComponentType.class, true); + super(CircuitComponentType.class, true, true); } public static enum CircuitComponentType { diff --git a/src/main/java/com/hbm/items/special/ItemPlasticScrap.java b/src/main/java/com/hbm/items/special/ItemPlasticScrap.java index 312cae5dc..3e9aa71e9 100644 --- a/src/main/java/com/hbm/items/special/ItemPlasticScrap.java +++ b/src/main/java/com/hbm/items/special/ItemPlasticScrap.java @@ -7,7 +7,7 @@ import net.minecraft.item.Item; public class ItemPlasticScrap extends ItemEnumMulti { public ItemPlasticScrap() { - super(ScrapType.class, false); + super(ScrapType.class, false, false); this.setCreativeTab(null); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 810ad974b..76b5f56be 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -588,6 +588,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBlockSpider.class, new RenderBlockSpider()); RenderingRegistry.registerEntityRenderingHandler(EntityUFO.class, new RenderUFO()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeZombie.class, new RenderSiegeZombie()); + RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGhost.java b/src/main/java/com/hbm/render/entity/mob/RenderGhost.java new file mode 100644 index 000000000..11dd78995 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderGhost.java @@ -0,0 +1,31 @@ +package com.hbm.render.entity.mob; + +import com.hbm.entity.mob.EntityGhost; +import com.hbm.lib.RefStrings; +import com.hbm.render.model.ModelSiegeZombie; + +import net.minecraft.client.renderer.entity.RenderBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.util.ResourceLocation; + +public class RenderGhost extends RenderBiped { + + public RenderGhost() { + super(new ModelSiegeZombie(0.0F), 0.5F, 1.0F); + } + + @Override + protected ResourceLocation getEntityTexture(EntityLiving entity) { + return this.getEntityTexture((EntityGhost) entity); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityGhost) entity); + } + + protected ResourceLocation getEntityTexture(EntityGhost entity) { + return new ResourceLocation(RefStrings.MODID + ":textures/entity/ghost.png"); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java index 4a78e1dc3..3459fc34c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronPower.java @@ -20,8 +20,10 @@ public class TileEntityHadronPower extends TileEntity implements IEnergyUser { @Override public void updateEntity() { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + if(!worldObj.isRemote) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } } } diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index edfbdf145..6a9d87ba4 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -61,9 +61,9 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! - registerIfExists("gregtech", "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists("gregtech", "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists("gregtech", "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); } private static void registerIfExists(String domain, String name, HazardClass... classes) { diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index 4c58f7c34..643ef1f91 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -1,11 +1,65 @@ package com.hbm.util; +import com.hbm.hazard.HazardRegistry; + import net.minecraft.item.Item; public class Compat { + + public static final String MOD_GT6 = "gregtech"; + public static final String MOD_GCC = "GalacticraftCore"; + public static final String MOD_AR = "advancedrocketry"; + public static final String MOD_EF = "etfuturum"; + public static final String MOD_REC = "ReactorCraft"; public static Item tryLoadItem(String domain, String name) { String reg = domain + ":" + name; return (Item) Item.itemRegistry.getObject(reg); } + + public static enum ReikaIsotope { + C14(HazardRegistry.gen_10K), + U235(HazardRegistry.u235), + U238(HazardRegistry.u238), + Pu239(HazardRegistry.pu239), + Pu244(HazardRegistry.gen_100M), + Th232(HazardRegistry.th232), + Rn222(HazardRegistry.gen_10D), + Ra226(HazardRegistry.ra226), + Sr90(HazardRegistry.gen_10Y), + Po210(HazardRegistry.po210), + Cs134(HazardRegistry.gen_1Y), + Xe135(HazardRegistry.xe135), + Zr93(HazardRegistry.gen_1M), + Mo99(HazardRegistry.gen_10D), + Cs137(HazardRegistry.cs137), + Tc99(HazardRegistry.tc99), + I131(HazardRegistry.i131), + Pm147(HazardRegistry.gen_1Y), + I129(HazardRegistry.gen_10M), + Sm151(HazardRegistry.gen_100Y), + Ru106(HazardRegistry.gen_1Y), + Kr85(HazardRegistry.gen_10Y), + Pd107(HazardRegistry.gen_10M), + Se79(HazardRegistry.gen_100K), + Gd155(HazardRegistry.gen_1Y), + Sb125(HazardRegistry.gen_1Y), + Sn126(HazardRegistry.gen_100K), + Xe136(0), + I135(HazardRegistry.gen_H), + Xe131(HazardRegistry.gen_10D), + Ru103(HazardRegistry.gen_S), + Pm149(HazardRegistry.gen_10D), + Rh105(HazardRegistry.gen_H); + + private float rads; + + private ReikaIsotope(float rads) { + this.rads = rads; + } + + public float getRad() { + return this.rads; + } + } } diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_component.chipset.png b/src/main/resources/assets/hbm/textures/items/circuit_star_component.chipset.png new file mode 100644 index 0000000000000000000000000000000000000000..daaa80e2a2a72f2b31037f95801e1efcb125b26a GIT binary patch literal 328 zcmV-O0k{5%P)nh ztXhFVjah@Nsw5(Hs>UTw(VP-iSteHS3GIO zim=AEZ*j4zv;xlqI7y+4u;z2=R(1F(0Z4{XkDIEBR=`wXI|96|n%fpO-0pRc0&j3{ zE_qs#r)7_`;RAd~K@rw$7Z>L-+cXt9eBdVW0p5jd1{6THj@m58^y~yB!-#}YUqFEu zt4agRzhBs?%5my$Bu`7Gwtx`<7z^n*o1JIt=(iQCjk`na;uxHnZAOnByRd(vx&N;6 aU$_Fn-)9=b&g*gj0000>W_7j&3`YgTN?40^btNT$fN%BclshXdMz!*A=Px5p}m=1 zQc7A%LWWOH@INZ+9V!GkcWD}qp{#SLMudgxjJhzye afng`JNx-i4{d<6}W$<+Mb6Mw<&;$UI%S(p< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_component.ram.png b/src/main/resources/assets/hbm/textures/items/circuit_star_component.ram.png new file mode 100644 index 0000000000000000000000000000000000000000..07ad7a3e9632f3caae13703ea4c5131c77d5f330 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf$ex>c`?KNOzxnY+k@<+vVioyZD6PF&m z{pq*;lPZH;Pp_*mdKI;Vst0KR5xs{jB1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_blank.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.board_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..7538b4e2acbd2b37c94a535905de13f18bd49def GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfC&#DGB0D^P>XISW|;t zj%KQo?tvh9v&v50>W$vyYyRz=>v|z}3YShWf{KXDv O7lWs(pUXO@geCysGC3mv literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_bios.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_bios.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8d1036e4624ea4add5e6c59d1dca9d508653ef GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfc9v2na7q+6P*2wm0K)9!^guT!NbGjK*0GHJp)rk#&wJ{+d73! z6r{V~{y1VdCk3c}{_TT|&JV9MvrG6T2liiOmA9)oa9~GFgXjby?!^s_j12G3TklkT Sc=saELIzJ)KbLh*2~7Zl<2k?p literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_bus.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_bus.png new file mode 100644 index 0000000000000000000000000000000000000000..9cda93203e3c20f89f0ba5164d44bd38cd70d3d5 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKaSXBO zJv&K}?~sFlYdmKt$BqM9dI829_ulQ9zzC^o3)7(n0W&iY4?4cc{J@%(OY(D*Sn3s`9JKb+cA&9qolQL z$32d9vn&+zqV$pi%eKzne$UGPu$StGh8Tk#6YsM93whdq(7%*fFCKIHzS=yC6{xQb;&ti)|JpF;7#1%<_siD&!%+g_s4dLFq zTSTYl*6cH9^2+$@}gdzF+rI6TEnws!1j+se#v?YH30_({iHgP+&^taa!O$mIJh zyzml3&O2xC$1#trU-i0sg`b|f?c9qw2d;WHrq6nK*u6;dpMbwvfsI<@jOmksUSaTb L^>bP0l+XkKjooGW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_cmos.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_cmos.png new file mode 100644 index 0000000000000000000000000000000000000000..d383d2012503b169dcc656fac7c8906be857ad63 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfO+~Vwk0~sG4GKcBM9C(=jiGK2sC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_io.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.bridge_io.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb1486768e4d1d0c27e6118853aeb942e3fc134 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfo|&U2J*m>>@wcv-2&GIMlRGGL{(#oSmGQK=k1zR&IkQ zGd5VuEbJ6WP+Y^Z`z#A@L*}m!51G3xv}alI=-2%Cz{t8eZpVQQyItA*79VF~tJr(= n`F>62!}Suq;U6^;K!AZE-d^{-h+JM4&?yX_u6{1-oD!MZpu17k!$wh_kA`$ z@|m76?A%^x`_rb6!RDD{!_tlUY+gH;h^}HjqB$%OThFSiT)IeBHasY^uE@ zS3={#Wm_7LNJuB}W~P0bFkh+X@r{=I1+#;8@(0iUW)&D3B05`W`{|Xxm3-BeCb_Cq mpZNaz=Lh=|#dy|wZ+(_F=k%R>;&^~gX7F_Nb6Mw<&;$UvXp0P{>(ph;Dfx|++{dH4mImF=YzK+ROiJ zS1*Ie@jIUc7i-RR?^hONIACaRCdH*Skz=*T9w>L9)-MG%ozCr3x)A`C`U0q2DAmCfQ+Stdo zfMK=N9yS9YP?5Jkcc9>pg9w>L9)-MG%ozCr3x(`i;tPR@dFO|0Ann#l== zR5vCZWZEOeDdnJZAoD;wzkG)gL%z-*GlPcDk@_(Qq&h5k8zh;MA9o!KJaB-4q18@& V{_n*dGk{hyc)I$ztaD0e0s!28I9&h$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_register.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_register.png new file mode 100644 index 0000000000000000000000000000000000000000..84550f3ab4a47b044351d856e891ddcca9db658f GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfW(HhnLR0eQ;pH-ULSG?aj>Ex!HcdF##M*M^cTmS$7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_socket.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.cpu_socket.png new file mode 100644 index 0000000000000000000000000000000000000000..23e4b945571ed79ba8fe01ed562092a0d120ee83 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfR5ed2akx9h cLVqG^O#OeNU}aztx;sk-n+_x673MIG?5UTmGg&$$_Tx3wpP)OYm?+v|VRl zV>@&%T`8qOlbJbA|AFa&{~MSOvj#`*5fdmmxVftK6widLJr=K+nDiF-#woA@t=}hO U%{;6BGSEr}Pgg&ebxsLQ0NgA&xBvhE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_b.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf8ea4383e8164523b6e9b3d826e8017a68545b GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfqG^O#OeNU}aztx;sk-n+_x673MIG?5UTmGg&$pM!W8`8i2s(8vNrEs-E zaJ>z;-O1i<>=Ha25e?TF*w_v+dR*XM#>4Z3ebN6!_BQTin<{iAend!Ah+k0CpTNWr XK3m3Gnr~Y#&{76ZS3j3^P6qG^O#OeNU}aztx;sk-n+_x673MIG?5UTmGg&$pM!W8`8i2s(8vNrEs-k zq7ie(J0`K3Nz%Fe1`+}r7}hiL@U$$Rut3~LQsP9v+yBFSJmNm7AEOLDY;>5t#{uZ5 Y{t6ju-7}6RKwB9+UHx3vIVCg!0KwurH~;_u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_d.png b/src/main/resources/assets/hbm/textures/items/circuit_star_piece.mem_16k_d.png new file mode 100644 index 0000000000000000000000000000000000000000..a4786fab960f0de99a344671b0053bc55520a769 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfqG^O#OeNU}aztx;sk-n+_x673MIG?5UTmGg&$pM!W8`8i2s(8vNrEs-k zq7k!O19!v+&%7VQL?(n40jzzh~Lyj9(9CMf#@x-+%8>vs1FL^R^Doy9+MN)7LQ3Gn~UVfy<5e zK+=JBe))imm?R5cj+r_QPLG8SXFB|HmlKhiF2NI^ugNdL!0;m3O!K*Cx&hE022WQ% Jmvv4FO#n^IGl~EJ literal 0 HcmV?d00001 From 3b938c5873180497d11bef5607d5032cc12db660 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 16 Dec 2021 17:00:08 +0100 Subject: [PATCH 2/2] funky xray marker renderer thing --- .../com/hbm/main/ModEventHandlerClient.java | 2 + .../com/hbm/render/util/RenderOverhead.java | 86 ++++++++++++++++++ .../hbm/textures/items/ball_dynamite.png | Bin 0 -> 308 bytes .../assets/hbm/textures/items/ball_tnt.png | Bin 0 -> 283 bytes .../assets/hbm/textures/items/clay_ball.png | Bin 0 -> 177 bytes .../assets/hbm/textures/items/ingot_c4.png | Bin 0 -> 280 bytes 6 files changed, 88 insertions(+) create mode 100644 src/main/resources/assets/hbm/textures/items/ball_dynamite.png create mode 100644 src/main/resources/assets/hbm/textures/items/ball_tnt.png create mode 100644 src/main/resources/assets/hbm/textures/items/clay_ball.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_c4.png diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 047e62cc9..ceedd0ab9 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -755,6 +755,8 @@ public class ModEventHandlerClient { } GL11.glPopMatrix(); + + RenderOverhead.renderMarkers(event.partialTicks); if(ArmorFSB.hasFSBArmor(player)) { ItemStack plate = player.inventory.armorInventory[2]; diff --git a/src/main/java/com/hbm/render/util/RenderOverhead.java b/src/main/java/com/hbm/render/util/RenderOverhead.java index 8352163f3..637b4cfb5 100644 --- a/src/main/java/com/hbm/render/util/RenderOverhead.java +++ b/src/main/java/com/hbm/render/util/RenderOverhead.java @@ -1,7 +1,13 @@ package com.hbm.render.util; +import java.util.HashMap; +import java.util.Map.Entry; + import org.lwjgl.opengl.GL11; +import com.hbm.util.Tuple.Pair; +import com.hbm.util.Tuple.Triplet; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.OpenGlHelper; @@ -97,6 +103,86 @@ public class RenderOverhead { } } + public static final HashMap, Pair> markers = new HashMap(); + + public static void renderMarkers(float partialTicks) { + + if(markers.isEmpty()) + return; + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double x = player.prevPosX + (player.posX - player.prevPosX) * partialTicks; + double y = player.prevPosY + (player.posY - player.prevPosY) * partialTicks; + double z = player.prevPosZ + (player.posZ - player.prevPosZ) * partialTicks; + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_COLOR_MATERIAL); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_POINT_SMOOTH); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + + for(Entry, Pair> entry : markers.entrySet()) { + Triplet pos = entry.getKey(); + Pair pars = entry.getValue(); + + int pX = pos.getX(); + int pY = pos.getY(); + int pZ = pos.getZ(); + + int color = pars.getValue(); + double[] bounds = pars.getKey(); + double minX = bounds[0]; + double minY = bounds[1]; + double minZ = bounds[2]; + double maxX = bounds[3]; + double maxY = bounds[4]; + double maxZ = bounds[5]; + + tess.setColorOpaque_I(color); + tess.addVertex(pX + minX - x, pY + maxY - y, pZ + minZ - z); + tess.addVertex(pX + minX - x, pY + minY - y, pZ + minZ - z); + tess.addVertex(pX + minX - x, pY + maxY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + maxY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + maxY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + minY - y, pZ + minZ - z); + tess.addVertex(pX + minX - x, pY + minY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + minY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + minY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + minY - y, pZ + maxZ - z); + tess.addVertex(pX + maxX - x, pY + maxY - y, pZ + maxZ - z); + tess.addVertex(pX + maxX - x, pY + maxY - y, pZ + minZ - z); + tess.addVertex(pX + maxX - x, pY + maxY - y, pZ + maxZ - z); + tess.addVertex(pX + maxX - x, pY + minY - y, pZ + maxZ - z); + tess.addVertex(pX + minX - x, pY + maxY - y, pZ + minZ - z); + tess.addVertex(pX + minX - x, pY + maxY - y, pZ + maxZ - z); + tess.addVertex(pX + minX - x, pY + maxY - y, pZ + maxZ - z); + tess.addVertex(pX + minX - x, pY + minY - y, pZ + maxZ - z); + tess.addVertex(pX + minX - x, pY + maxY - y, pZ + maxZ - z); + tess.addVertex(pX + maxX - x, pY + maxY - y, pZ + maxZ - z); + tess.addVertex(pX + minX - x, pY + minY - y, pZ + maxZ - z); + tess.addVertex(pX + maxX - x, pY + minY - y, pZ + maxZ - z); + tess.addVertex(pX + minX - x, pY + minY - y, pZ + minZ - z); + tess.addVertex(pX + minX - x, pY + minY - y, pZ + maxZ - z); + } + + tess.draw(); + + tess.setColorOpaque_F(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_COLOR_MATERIAL); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_POINT_SMOOTH); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glPopMatrix(); + } + public static void renderThermalSight(float partialTicks) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; diff --git a/src/main/resources/assets/hbm/textures/items/ball_dynamite.png b/src/main/resources/assets/hbm/textures/items/ball_dynamite.png new file mode 100644 index 0000000000000000000000000000000000000000..c13696d67de3909228654683137d44c0ba791e56 GIT binary patch literal 308 zcmV-40n7f0P)+ z+`(%f0K8Hf(9$p~|E7-es-4++Z{}$R{x_01G)Wwq-)j0@M1Uw-lV=%#0r=jXoO*2| zk;I`{t-kO)-{#&T><`C=h+8K|(b~pZ7ie8DnNCTSV!4=8x72Dux|gTuf)$YNS{D_v z#Iqo@k*)`vmju9I0DUEXb9AW1Z_w3H}C>W0cWa{ehV%D00004V=vo|yZ5d4mrXk{IYRt;lLANXJ8h=YyJuX! z+3j4TC9Q3`=*kI0p)IlA)0X~F*6mB!;IEe1UwRtw`@%~Yrtc~k|yAIR)N=m*}hQJKQ8wQTd6LQ_Z zG4=3Y>bWj3LBT`lW>`wIhZ)07)eR0Ul1(-*HYn$7;30IzuZg0j*% zg;VM$6iysIU-0@SvxqNHqV2P|?2R)Wi440GzsK1fT*WDwz;S@*=eO6^e!k7z3=E&E WVmD2D`zHtJH3m;tKbLh*2~7aC;d4Cz literal 0 HcmV?d00001