From 40a14fb440f94744e119648f8f55109a0ed8896c Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 10 Oct 2025 14:56:28 +0200 Subject: [PATCH] automatic prostate exam device --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 + .../sedna/factory/GunFactoryClient.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../item/weapon/sedna/ItemRenderDrill.java | 101 ++++++++++++++++++ .../hbm/textures/blocks/brick_forgotten.png | Bin 214 -> 407 bytes .../textures/blocks/brick_forgotten_hole.png | Bin 0 -> 553 bytes .../blocks/brick_forgotten_hole.png.mcmeta | 5 + .../textures/blocks/brick_forgotten_lock.png | Bin 0 -> 458 bytes .../textures/blocks/brick_forgotten_top.png | Bin 0 -> 324 bytes 9 files changed, 113 insertions(+) create mode 100644 src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_forgotten_hole.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_forgotten_hole.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_forgotten_lock.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/brick_forgotten_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 176b270f7..3aedb9c06 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -341,6 +341,7 @@ public class ModBlocks { public static Block brick_fire; public static Block lightstone; + public static Block brick_forgotten; public static Block concrete_slab; public static Block concrete_double_slab; @@ -1558,6 +1559,7 @@ public class ModBlocks { reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); lightstone = new BlockLightstone(Material.rock, LightstoneType.class, true, true).setBlockName("lightstone").setCreativeTab(MainRegistry.blockTab).setHardness(2F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":lightstone"); + brick_forgotten = new BlockPillar(Material.rock, RefStrings.MODID + ":brick_forgotten_top").setBlockName("brick_forgotten").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten"); concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab); concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab); @@ -2741,6 +2743,8 @@ public class ModBlocks { register(lightstone_bricks_stairs); register(stones_slab, ItemModSlab.class); register(stones_double_slab, ItemModSlab.class); + + register(brick_forgotten); GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName()); GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index acca45ca7..29bf99834 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -101,6 +101,7 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_double_barrel, new ItemRenderDoubleBarrel(ResourceManager.double_barrel_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_double_barrel_sacred_dragon, new ItemRenderDoubleBarrel(ResourceManager.double_barrel_sacred_dragon_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_charge_thrower, new ItemRenderChargeThrower()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_drill, new ItemRenderDrill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_n_i_4_n_i, new ItemRenderNI4NI()); //PROJECTILES diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index fc422c215..6af5c6005 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -911,6 +911,7 @@ public class ResourceManager { public static final IModelCustom aberrator = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/aberrator.obj")).asVBO(); public static final IModelCustom mas36 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mas36.obj")).asVBO(); public static final IModelCustom charge_thrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/charge_thrower.obj")).asVBO(); + public static final IModelCustom drill = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/drill.obj")).asVBO(); public static final IModelCustom n_i_4_n_i = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/n_i_4_n_i.obj")).asVBO(); public static final HashMap spas_12_anim = AnimationLoader.load(new ResourceLocation(RefStrings.MODID, "models/weapons/animations/spas12.json")); @@ -1050,6 +1051,7 @@ public class ResourceManager { public static final ResourceLocation charge_thrower_hook_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/charge_thrower_hook.png"); public static final ResourceLocation charge_thrower_mortar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/charge_thrower_mortar.png"); public static final ResourceLocation charge_thrower_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/charge_thrower_rocket.png"); + public static final ResourceLocation drill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/drill.png"); public static final ResourceLocation n_i_4_n_i_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/n_i_4_n_i.png"); public static final ResourceLocation n_i_4_n_i_greyscale_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/n_i_4_n_i_greyscale.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java new file mode 100644 index 000000000..dc77ef450 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDrill.java @@ -0,0 +1,101 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderDrill extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 0F : -0.5F; } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + standardAimingTransform(stack, + -1.25F * offset, -1.75F * offset, 1.75F * offset, + 0, -4.6825 / 8D, 0.75); + + GL11.glRotated(15, 0, 1, 0); + GL11.glRotated(-10, 1, 0, 0); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.drill_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.drill.renderPart("Base"); + + GL11.glPushMatrix(); + GL11.glTranslated(1, 2.0625, -1.75); + GL11.glRotated(45, 1, 0, 0); + GL11.glRotated(-135, 0, 0, 1); + GL11.glRotated(-45, 1, 0, 0); + GL11.glTranslated(-1, -2.0625, 1.75); + ResourceManager.drill.renderPart("Gauge"); + GL11.glPopMatrix(); + + ResourceManager.drill.renderPart("Piston1"); + ResourceManager.drill.renderPart("Piston2"); + ResourceManager.drill.renderPart("Piston3"); + + GL11.glPushMatrix(); + GL11.glRotated(System.currentTimeMillis() / 3 % 360D, 0, 0, -1); + ResourceManager.drill.renderPart("DrillBack"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated(System.currentTimeMillis() / 3 % 360D, 0, 0, 1); + ResourceManager.drill.renderPart("DrillFront"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.75D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(1, -2, 6); + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0, 0); + } + + @Override + public void setupModTable(ItemStack stack) { + double scale = -7.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 2, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.drill_tex); + ResourceManager.drill.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_forgotten.png b/src/main/resources/assets/hbm/textures/blocks/brick_forgotten.png index c302768fceb45ecf1c149fc320606925c845426d..3b497c51a5c5263b67bfaf3e3ef35df57cdca362 100644 GIT binary patch delta 365 zcmV-z0h0dK0ha@iGk*b2Nkl15QRSpH7W%bsFF&dBA{A0S1_pb5qu&a z!KJ}hNO0{gq};6*WKgM6DeSjdD^AEX!|eRMc{3aBHrsiBIsnkO9YtB;tl@Y$BiU`X z061$Hrjhs04<8>pYkYu`#=l3vYu)(xSd~K!cm(PScz-Q%*4zqQr_sZg9gdWz z8AVy~Qn#$qjQL)mC@Yd{P}NyOXon+7ha706nO{Ua2-RDVxZ7;mpAJNQ+s*2<+<*ui zrjZC(rP%|rqO6Ez4AbbfSk_2UfJ$-lM}6DP!!(koneW8CTX+jgS=SADnvnnxq=fUY z>&E*uPEl6uPi6WQy5V>^(*ubdDiU&{?*7zyJSLAIyf!)1 zeTksp7T>oW&YBy7A-FuTtG8$WMBB*IjQH7o%PD(VG}M1y;(z1|xjX+J#Q?Ip00000 LNkvXXu0mjfc_FUy delta 171 zcmV;c095~%1J(hMGk*Y$Nkl{LJ+AaF-M*8sZ&;qUI8A2L* zDMEbI-T(kX425!U-p+&=nJ8bUb?ggDyqGO=Y)TdB_y!iwknM9tBDo`z)++w ZI04@SKIaUxO>h7J002ovPDHLkV1l&+NSOct diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_forgotten_hole.png b/src/main/resources/assets/hbm/textures/blocks/brick_forgotten_hole.png new file mode 100644 index 0000000000000000000000000000000000000000..dc73dfda5254dd3d18f46b44ceddbf34659a8951 GIT binary patch literal 553 zcmV+^0@nSBP)Y0Mqx-mOKlML;1>|cn;t<=;5BdI zNATuA#;z#^L!lj7Qjby>1-obznbbkLFP{`sXra&{2jXXP^0J~OiVbqmheC8Ay)9TORsT6NmX^cqC%LVyBV6*$!Xksq`{ zl=1~#IXm~C$TWtQP4C=(%ca=eq`Ed5l>b^Tk}$sgboi=TSWf5YQ;{~_c{hx#K7*@E zvY#jA|HcQk{2M+HE)f04e6ZPV+3)wvX0ukgT|O`(Kd8EVaP9d#na`~Xx*~jF0@5Qo1=nv}vR!6GTeN^9}jE9ESG1mjEWQz+~U$W;OB z>rO1iPArpRiGRS-a<7Q9BzoNqgk?7Ko7w&4i#Hoj?Q*>WU@{mIMlnU6k?yxh%*Imy ziag_Tzp*(UTz#X+GglyDc`4!|&)mKTymx!9z9F5fE8tEbQvtV16nR!QxZZE>_>u#R zy1kmX6*PGZn%GB!FpBZ7m99meIkDCnV+@^62V)H1t1s6`Jdm)@kJj2MrCgpQNi7HL zY&^Aq^(KR%74u~6e}15ps!dT!aoQbgbzv0aOLDp2Ab&MV;(R{W>YRzP*$SFm?l-)L zAW0G@)>_kUw@LR~Hpc_$e(MJLz>6tAO4Y7ljN!C9I$oCR6|JCIau7zbg9b`~Mh{S) zk1xj_b$g`yEk&N;iy0G2c)}=lcbw1X0QCEP7K;TF>K=trj5ixkZI$sV_d=uKETC11 z^{c4LRjPX;ein-HjlcMomy*lm=YK-Jn<y3pkz~?5N>}_5c6?07*qoM6N<$f}`ck AumAu6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/brick_forgotten_top.png b/src/main/resources/assets/hbm/textures/blocks/brick_forgotten_top.png new file mode 100644 index 0000000000000000000000000000000000000000..7deaf53de7427aec5de825967739a5db033d85fb GIT binary patch literal 324 zcmV-K0lWT*P)?if;1vSab|Ga_ zr3j=<84Hlm-K+^<376^O2c}&;(R>OHnnNiCV(RW=!X7f;L9jWOUD$` zP#@?9ABj-RBIrl?B#CJv_+I{V}?uoS0bJNJuu()*4Jr^p7(&k^K|4 WTd2G30MFL|0000