diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 539594390..3d20d2482 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -274,6 +274,21 @@ public class BobmazonOfferFactory { new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"), new ItemStack(ModItems.gem_alexandrite) ).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64)); + + special.add(new Offer(ItemKitNBT.create( + new ItemStack(ModItems.rpa_helmet), + new ItemStack(ModItems.rpa_plate), + new ItemStack(ModItems.rpa_legs), + new ItemStack(ModItems.rpa_boots), + new ItemStack(ModItems.gun_lacunae), + new ItemStack(ModItems.ammo_5mm_star, 64), + new ItemStack(ModItems.ammo_5mm_star, 64), + new ItemStack(ModItems.ammo_5mm_star, 64), + new ItemStack(ModItems.ammo_5mm_star, 64), + new ItemStack(ModItems.ammo_5mm_star, 64), + new ItemStack(ModItems.ammo_5mm_star, 64), + new ItemStack(ModItems.ammo_5mm_star, 64) + ).setStackDisplayName("Frenchman's Reward"), Requirement.HIDDEN, 32)); } public static List getOffers(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java b/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java index 7f8f244eb..6a8fe97e1 100644 --- a/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemLaserDetonator.java @@ -7,8 +7,10 @@ import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.interfaces.IHoldableWeapon; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.ChatBuilder; import net.minecraft.entity.player.EntityPlayer; @@ -19,7 +21,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class ItemLaserDetonator extends Item { +public class ItemLaserDetonator extends Item implements IHoldableWeapon { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { @@ -70,4 +72,9 @@ public class ItemLaserDetonator extends Item { return stack; } + + @Override + public Crosshair getCrosshair() { + return Crosshair.L_ARROWS; + } } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index a6733bb29..a1791721e 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -60,7 +60,6 @@ public class Library { public static String Hoboy03new = "d7f29d9c-5103-4f6f-88e1-2632ff95973f"; public static String Dragon59MC = "dc23a304-0f84-4e2d-b47d-84c8d3bfbcdb"; public static String Steelcourage = "ac49720b-4a9a-4459-a26f-bee92160287a"; - public static String GOD___TM = "57146e3f-16b5-4e9f-b0b8-139bec2ca2cb"; public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017"; public static String Schrabby = "3a4a1944-5154-4e67-b80a-b6561e8630b7"; public static String SweatySwiggs = "5544aa30-b305-4362-b2c1-67349bb499d5"; @@ -74,6 +73,7 @@ public class Library { public static String Tankish = "609268ad-5b34-49c2-abba-a9d83229af03"; public static String SolsticeUnlimitd = "f5574fd2-ec28-4927-9d11-3c0c731771f4"; public static String FrizzleFrazzle = "fc4cc2ee-12e8-4097-b26a-1c6cb1b96531"; + public static String the_NCR = "28ae585f-4431-4491-9ce8-3def6126e3c6"; public static Set contributors = Sets.newHashSet(new String[] { "06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 45aae560c..d7dd5518f 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -415,6 +415,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.detonator_laser, new ItemRenderDetonatorLaser()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index cb0112dc3..04f216920 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1004,9 +1004,10 @@ public class ModEventHandler { if(player.getCurrentArmor(2) == null && !player.onGround) { boolean isBob = player.getUniqueID().toString().equals(Library.HbMinecraft) || player.getDisplayName().equals("HbMinecraft"); - boolean isSol = player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd"); + boolean isOther = player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd") || + player.getUniqueID().toString().equals(Library.the_NCR) || player.getDisplayName().equals("the_NCR"); - if(isBob || isSol) { + if(isBob || isOther) { ArmorUtil.resetFlightTime(player); @@ -1029,7 +1030,7 @@ public class ModEventHandler { else player.motionY = cap + 0.15D; - if(isSol) { + if(isOther) { if(player.getFoodStats().getSaturationLevel() > 0F) player.addExhaustion(4F); //burn up saturation so that super-saturating foods have no effect else @@ -1045,7 +1046,7 @@ public class ModEventHandler { else if(player.motionY < 0) player.motionY = 0; - if(isSol && !player.onGround) { + if(isOther && !player.onGround) { if(player.getFoodStats().getSaturationLevel() > 0F) player.addExhaustion(4F); else diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 95068fd96..a61f82536 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -335,7 +335,9 @@ public class ModEventHandlerClient { if(player.getUniqueID().toString().equals(Library.SolsticeUnlimitd) || player.getDisplayName().equals("SolsticeUnlimitd")) RenderAccessoryUtility.renderSol(event); if(player.getUniqueID().toString().equals(Library.HbMinecraft) || player.getDisplayName().equals("HbMinecraft")) - RenderAccessoryUtility.renderWings(event); + RenderAccessoryUtility.renderWings(event, 2); + if(player.getUniqueID().toString().equals(Library.the_NCR) || player.getDisplayName().equals("the_NCR")) + RenderAccessoryUtility.renderWings(event, 3); } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index cd3adf9cf..705fd69ce 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -624,6 +624,7 @@ public class ResourceManager { public static final IModelCustom mg42 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mg42.obj")); public static final IModelCustom rem700 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/rem700.obj")); public static final IModelCustom cursed_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cursed.obj")); + public static final IModelCustom detonator_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/detonator_laser.obj")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -692,6 +693,7 @@ public class ResourceManager { public static final ResourceLocation sky_stinger_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sky_stinger.png"); public static final ResourceLocation mg42_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/mg42.png"); public static final ResourceLocation rem700_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/rem700.png"); + public static final ResourceLocation detonator_laser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/detonator_laser.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); @@ -756,6 +758,7 @@ public class ResourceManager { public static final ResourceLocation wings_murk = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_murk.png"); public static final ResourceLocation wings_bob = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_bob.png"); + public static final ResourceLocation wings_black = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_black.png"); public static final ResourceLocation wings_solstice = new ResourceLocation(RefStrings.MODID, "textures/armor/wings_solstice.png"); public static final ResourceLocation hat = new ResourceLocation(RefStrings.MODID, "textures/armor/hat.png"); diff --git a/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java b/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java new file mode 100644 index 000000000..f7e2f7e35 --- /dev/null +++ b/src/main/java/com/hbm/render/item/ItemRenderDetonatorLaser.java @@ -0,0 +1,100 @@ +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 { + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.detonator_laser_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glScaled(s0, s0, s0); + + GL11.glRotatef(80F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-20F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(1.0F, 0.5F, 3.0F); + + break; + + case EQUIPPED: + + double scale = 0.125D; + GL11.glScaled(-scale, -scale, -scale); + GL11.glRotatef(85F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(145F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(-0.5F, -1.0F, 6.5F); + break; + + case ENTITY: + + double s1 = 0.25D; + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + GL11.glScaled(s1, s1, s1); + break; + + case INVENTORY: + + GL11.glEnable(GL11.GL_LIGHTING); + + double s = 3.5D; + GL11.glScaled(s, s, -s); + GL11.glTranslatef(1.5F, 2.75F, 0.0F); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); + + break; + + default: break; + } + + ResourceManager.detonator_laser.renderPart("Main"); + 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.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/model/ModelArmorWings.java b/src/main/java/com/hbm/render/model/ModelArmorWings.java index f5524256c..280da5bdc 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorWings.java +++ b/src/main/java/com/hbm/render/model/ModelArmorWings.java @@ -160,9 +160,11 @@ public class ModelArmorWings extends ModelArmorBase { } protected ResourceLocation getTexture() { - + if(this.type == 2) return ResourceManager.wings_bob; + if(this.type == 3) + return ResourceManager.wings_black; return ResourceManager.wings_murk; } diff --git a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java index a001801af..7103eebad 100644 --- a/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java +++ b/src/main/java/com/hbm/render/util/RenderAccessoryUtility.java @@ -143,17 +143,17 @@ public class RenderAccessoryUtility { solModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); } - private static ModelBiped wingModel; - public static void renderWings(RenderPlayerEvent.SetArmorModel event) { + private static ModelBiped[] wingModels = new ModelBiped[10]; + public static void renderWings(RenderPlayerEvent.SetArmorModel event, int mode) { - if(wingModel == null) - wingModel = new ModelArmorWings(2); + if(wingModels[mode] == null) + wingModels[mode] = new ModelArmorWings(mode); RenderPlayer renderer = event.renderer; ModelBiped model = renderer.modelArmor; EntityPlayer player = event.entityPlayer; - wingModel.isSneak = model.isSneak; + wingModels[mode].isSneak = model.isSneak; float interp = event.partialRenderTick; float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; @@ -162,6 +162,6 @@ public class RenderAccessoryUtility { float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); float pitch = player.rotationPitch; - wingModel.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); + wingModels[mode].render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); } } diff --git a/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png index 03202008a..e77117fd4 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png and b/src/main/resources/assets/hbm/textures/models/weapons/detonator_laser.png differ