diff --git a/src/main/java/com/hbm/inventory/container/ContainerWeaponTable.java b/src/main/java/com/hbm/inventory/container/ContainerWeaponTable.java index 34c007c88..4196b792c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerWeaponTable.java +++ b/src/main/java/com/hbm/inventory/container/ContainerWeaponTable.java @@ -16,6 +16,7 @@ public class ContainerWeaponTable extends Container { public InventoryBasic mods = new InventoryBasic("Mods", false, 7); public IInventory gun = new InventoryCraftResult(); + public int index = 0; public ContainerWeaponTable(InventoryPlayer inventory) { @@ -31,8 +32,10 @@ public class ContainerWeaponTable extends Container { @Override public void putStack(ItemStack stack) { + ContainerWeaponTable.this.index = 0; + if(stack != null) { - ItemStack[] mods = WeaponModManager.getUpgradeItems(stack); + ItemStack[] mods = WeaponModManager.getUpgradeItems(stack, index); if(mods != null) for(int i = 0; i < Math.min(mods.length, 7); i++) { ContainerWeaponTable.this.mods.setInventorySlotContents(i, mods[i]); @@ -47,7 +50,7 @@ public class ContainerWeaponTable extends Container { super.onPickupFromSlot(player, stack); WeaponModManager.install( - stack, + stack, index, mods.getStackInSlot(0), mods.getStackInSlot(1), mods.getStackInSlot(2), @@ -58,8 +61,10 @@ public class ContainerWeaponTable extends Container { for(int i = 0; i < 7; i++) { ItemStack mod = ContainerWeaponTable.this.mods.getStackInSlot(i); - if(WeaponModManager.isApplicable(stack, mod, false)) ContainerWeaponTable.this.mods.setInventorySlotContents(i, null); + if(WeaponModManager.isApplicable(stack, mod, index, false)) ContainerWeaponTable.this.mods.setInventorySlotContents(i, null); } + + ContainerWeaponTable.this.index = 0; } }); @@ -75,6 +80,48 @@ public class ContainerWeaponTable extends Container { this.onCraftMatrixChanged(this.mods); } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + if(mode == 999_999) { + ItemStack stack = gun.getStackInSlot(0); + if(stack != null && stack.getItem() instanceof ItemGunBaseNT) { + int configs = ((ItemGunBaseNT) stack.getItem()).getConfigCount(); + if(configs < button) return null; + + WeaponModManager.install( + stack, this.index, + mods.getStackInSlot(0), + mods.getStackInSlot(1), + mods.getStackInSlot(2), + mods.getStackInSlot(3), + mods.getStackInSlot(4), + mods.getStackInSlot(5), + mods.getStackInSlot(6)); + + for(int i = 0; i < 7; i++) { + ItemStack mod = ContainerWeaponTable.this.mods.getStackInSlot(i); + if(WeaponModManager.isApplicable(stack, mod, this.index, false)) ContainerWeaponTable.this.mods.setInventorySlotContents(i, null); + } + + this.index = button; + + if(stack != null) { + ItemStack[] mods = WeaponModManager.getUpgradeItems(stack, this.index); + + if(mods != null) for(int i = 0; i < Math.min(mods.length, 7); i++) { + ContainerWeaponTable.this.mods.setInventorySlotContents(i, mods[i]); + } + } + + this.detectAndSendChanges(); + } + return null; + } + + return super.slotClick(index, button, mode, player); + } @Override public void onContainerClosed(EntityPlayer player) { @@ -92,7 +139,7 @@ public class ContainerWeaponTable extends Container { ItemStack itemstack = this.gun.getStackInSlotOnClosing(0); if(itemstack != null) { - WeaponModManager.uninstall(itemstack); + WeaponModManager.uninstall(itemstack, index); player.dropPlayerItemWithRandomChoice(itemstack, false); } } @@ -116,7 +163,7 @@ public class ContainerWeaponTable extends Container { @Override public boolean isItemValid(ItemStack stack) { - return gun.getStackInSlot(0) != null && WeaponModManager.isApplicable(gun.getStackInSlot(0), stack, true); + return gun.getStackInSlot(0) != null && WeaponModManager.isApplicable(gun.getStackInSlot(0), stack, index, true); } @Override @@ -133,9 +180,9 @@ public class ContainerWeaponTable extends Container { public void refreshInstalledMods() { if(gun.getStackInSlot(0) == null) return; - WeaponModManager.uninstall(gun.getStackInSlot(0)); + WeaponModManager.uninstall(gun.getStackInSlot(0), index); WeaponModManager.install( - gun.getStackInSlot(0), + gun.getStackInSlot(0), index, mods.getStackInSlot(0), mods.getStackInSlot(1), mods.getStackInSlot(2), diff --git a/src/main/java/com/hbm/inventory/gui/GUIWeaponTable.java b/src/main/java/com/hbm/inventory/gui/GUIWeaponTable.java index 939b03dd8..c81cc062f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIWeaponTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIWeaponTable.java @@ -1,19 +1,30 @@ package com.hbm.inventory.gui; +import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.inventory.container.ContainerWeaponTable; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.lib.RefStrings; +import com.hbm.render.item.weapon.sedna.ItemRenderWeaponBase; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.MinecraftForgeClient; public class GUIWeaponTable extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_weapon_modifier.png"); public int left; public int top; + + public double yaw = 20; + public double pitch = -10; public GUIWeaponTable(InventoryPlayer player) { super(new ContainerWeaponTable(player)); @@ -24,13 +35,45 @@ public class GUIWeaponTable extends GuiInfoContainer { guiLeft = (this.width - this.xSize) / 2; guiTop = (this.height - this.ySize) / 2; } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(guiLeft + 8 <= x && guiLeft + 8 + 160 > x && guiTop + 18 < y && guiTop + 18 + 79 >= y) { + if(Mouse.isButtonDown(0)) { + double distX = (guiLeft + 8 + 80) - x; + double distY = (guiTop + 18 + 39.5) - y; + yaw = distX / 80D * -180D; + pitch = distY / 39.5D * 90D; + } + } + } + + @Override + protected void mouseClicked(int x, int y, int key) { + super.mouseClicked(x, y, key); + + if(guiLeft + 26 <= x && guiLeft + 26 + 7 > x && guiTop + 111 < y && guiTop + 111 + 10 >= y) { + ContainerWeaponTable container = (ContainerWeaponTable) this.inventorySlots; + ItemStack gun = container.gun.getStackInSlot(0); + if(gun != null && gun.getItem() instanceof ItemGunBaseNT) { + int configs = ((ItemGunBaseNT) gun.getItem()).getConfigCount(); + if(configs > 1) { + container.index++; + container.index %= configs; + this.handleMouseClick(null, 0, container.index, 999_999); + } + } + } + } @Override protected void drawGuiContainerForegroundLayer(int mX, int mY) { - String name = I18n.format("container.armorTable"); - this.fontRendererObj.drawString(name, (this.xSize - 22) / 2 - this.fontRendererObj.getStringWidth(name) / 2 + 22, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8 + 22, this.ySize - 96 + 2, 4210752); + String name = I18n.format("container.weaponsTable"); + this.fontRendererObj.drawString(name, (this.xSize) / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @Override @@ -38,5 +81,35 @@ public class GUIWeaponTable extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + ContainerWeaponTable container = (ContainerWeaponTable) this.inventorySlots; + ItemStack gun = container.gun.getStackInSlot(0); + + if(gun != null && gun.getItem() instanceof ItemGunBaseNT) { + drawTexturedModalRect(guiLeft + 35, guiTop + 112, 176 + 6 * container.index, 0, 6, 8); + + GL11.glPushMatrix(); + GL11.glTranslated(guiLeft + 88, guiTop + 57, 100); + + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(gun, IItemRenderer.ItemRenderType.INVENTORY); + + if(customRenderer instanceof ItemRenderWeaponBase) { + ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; + + GL11.glPushMatrix(); + GL11.glRotated(180, 1, 0, 0); + RenderHelper.enableStandardItemLighting(); + GL11.glPopMatrix(); + + GL11.glRotated(yaw, 0, 1, 0); + GL11.glRotated(pitch, 1, 0, 0); + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + renderGun.setupModTable(gun); + renderGun.renderModTable(gun, container.index); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + } + GL11.glPopMatrix(); + } } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java index 613c4bc09..24b9a4bad 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java @@ -85,36 +85,36 @@ public class GunConfig { /* GETTERS */ - public Receiver[] getReceivers(ItemStack stack) { return WeaponModManager.eval(receivers_DNA, stack, O_RECEIVERS, this); } - public float getDurability(ItemStack stack) { return WeaponModManager.eval(durability_DNA, stack, F_DURABILITY, this); } - public int getDrawDuration(ItemStack stack) { return WeaponModManager.eval(drawDuration_DNA, stack, I_DRAWDURATION, this); } - public int getInspectDuration(ItemStack stack) { return WeaponModManager.eval(inspectDuration_DNA, stack, I_INSPECTDURATION, this); } - public boolean getInspectCancel(ItemStack stack) { return WeaponModManager.eval(inspectCancel_DNA, stack, I_INSPECTCANCEL, this); } - public Crosshair getCrosshair(ItemStack stack) { return WeaponModManager.eval(crosshair_DNA, stack, O_CROSSHAIR, this); } - public boolean getHideCrosshair(ItemStack stack) { return WeaponModManager.eval(hideCrosshair_DNA, stack, B_HIDECROSSHAIR, this); } - public boolean getReloadAnimSequential(ItemStack stack) { return WeaponModManager.eval(reloadAnimationsSequential_DNA, stack, B_RELOADANIMATIONSEQUENTIAL, this); } - public ResourceLocation getScopeTexture(ItemStack stack) { return WeaponModManager.eval(scopeTexture_DNA, stack, O_SCOPETEXTURE, this); } - public BiConsumer getSmokeHandler(ItemStack stack) { return WeaponModManager.eval(smokeHandler_DNA, stack, CON_SMOKE, this); } - public BiConsumer getOrchestra(ItemStack stack) { return WeaponModManager.eval(this.orchestra_DNA, stack, CON_ORCHESTRA, this); } + public Receiver[] getReceivers(ItemStack stack) { return WeaponModManager.eval(receivers_DNA, stack, O_RECEIVERS, this, this.index); } + public float getDurability(ItemStack stack) { return WeaponModManager.eval(durability_DNA, stack, F_DURABILITY, this, this.index); } + public int getDrawDuration(ItemStack stack) { return WeaponModManager.eval(drawDuration_DNA, stack, I_DRAWDURATION, this, this.index); } + public int getInspectDuration(ItemStack stack) { return WeaponModManager.eval(inspectDuration_DNA, stack, I_INSPECTDURATION, this, this.index); } + public boolean getInspectCancel(ItemStack stack) { return WeaponModManager.eval(inspectCancel_DNA, stack, I_INSPECTCANCEL, this, this.index); } + public Crosshair getCrosshair(ItemStack stack) { return WeaponModManager.eval(crosshair_DNA, stack, O_CROSSHAIR, this, this.index); } + public boolean getHideCrosshair(ItemStack stack) { return WeaponModManager.eval(hideCrosshair_DNA, stack, B_HIDECROSSHAIR, this, this.index); } + public boolean getReloadAnimSequential(ItemStack stack) { return WeaponModManager.eval(reloadAnimationsSequential_DNA, stack, B_RELOADANIMATIONSEQUENTIAL, this, this.index); } + public ResourceLocation getScopeTexture(ItemStack stack) { return WeaponModManager.eval(scopeTexture_DNA, stack, O_SCOPETEXTURE, this, this.index); } + public BiConsumer getSmokeHandler(ItemStack stack) { return WeaponModManager.eval(smokeHandler_DNA, stack, CON_SMOKE, this, this.index); } + public BiConsumer getOrchestra(ItemStack stack) { return WeaponModManager.eval(this.orchestra_DNA, stack, CON_ORCHESTRA, this, this.index); } - public BiConsumer getPressPrimary(ItemStack stack) { return WeaponModManager.eval(this.onPressPrimary_DNA, stack, CON_ONPRESSPRIMARY, this); } - public BiConsumer getPressSecondary(ItemStack stack) { return WeaponModManager.eval(this.onPressSecondary_DNA, stack, CON_ONPRESSSECONDARY, this); } - public BiConsumer getPressTertiary(ItemStack stack) { return WeaponModManager.eval(this.onPressTertiary_DNA, stack, CON_ONPRESSTERTIARY, this); } - public BiConsumer getPressReload(ItemStack stack) { return WeaponModManager.eval(this.onPressReload_DNA, stack, CON_ONPRESSRELOAD, this); } + public BiConsumer getPressPrimary(ItemStack stack) { return WeaponModManager.eval(this.onPressPrimary_DNA, stack, CON_ONPRESSPRIMARY, this, this.index); } + public BiConsumer getPressSecondary(ItemStack stack) { return WeaponModManager.eval(this.onPressSecondary_DNA, stack, CON_ONPRESSSECONDARY, this, this.index); } + public BiConsumer getPressTertiary(ItemStack stack) { return WeaponModManager.eval(this.onPressTertiary_DNA, stack, CON_ONPRESSTERTIARY, this, this.index); } + public BiConsumer getPressReload(ItemStack stack) { return WeaponModManager.eval(this.onPressReload_DNA, stack, CON_ONPRESSRELOAD, this, this.index); } - public BiConsumer getReleasePrimary(ItemStack stack) { return WeaponModManager.eval(this.onReleasePrimary_DNA, stack, CON_ONRELEASEPRIMARY, this); } - public BiConsumer getReleaseSecondary(ItemStack stack) { return WeaponModManager.eval(this.onReleaseSecondary_DNA, stack, CON_ONRELEASESECONDARY, this); } - public BiConsumer getReleaseTertiary(ItemStack stack) { return WeaponModManager.eval(this.onReleaseTertiary_DNA, stack, CON_ONRELEASETERTIARY, this); } - public BiConsumer getReleaseReload(ItemStack stack) { return WeaponModManager.eval(this.onReleaseReload_DNA, stack, CON_ONRELEASERELOAD, this); } + public BiConsumer getReleasePrimary(ItemStack stack) { return WeaponModManager.eval(this.onReleasePrimary_DNA, stack, CON_ONRELEASEPRIMARY, this, this.index); } + public BiConsumer getReleaseSecondary(ItemStack stack) { return WeaponModManager.eval(this.onReleaseSecondary_DNA, stack, CON_ONRELEASESECONDARY, this, this.index); } + public BiConsumer getReleaseTertiary(ItemStack stack) { return WeaponModManager.eval(this.onReleaseTertiary_DNA, stack, CON_ONRELEASETERTIARY, this, this.index); } + public BiConsumer getReleaseReload(ItemStack stack) { return WeaponModManager.eval(this.onReleaseReload_DNA, stack, CON_ONRELEASERELOAD, this, this.index); } - public BiConsumer getDecider(ItemStack stack) { return WeaponModManager.eval(this.decider_DNA, stack, CON_DECIDER, this); } + public BiConsumer getDecider(ItemStack stack) { return WeaponModManager.eval(this.decider_DNA, stack, CON_DECIDER, this, this.index); } - public BiFunction getAnims(ItemStack stack) { return WeaponModManager.eval(this.animations_DNA, stack, FUN_ANIMNATIONS, this); } - public IHUDComponent[] getHUDComponents(ItemStack stack) { return WeaponModManager.eval(this.hudComponents_DNA, stack, O_HUDCOMPONENTS, this); } + public BiFunction getAnims(ItemStack stack) { return WeaponModManager.eval(this.animations_DNA, stack, FUN_ANIMNATIONS, this, this.index); } + public IHUDComponent[] getHUDComponents(ItemStack stack) { return WeaponModManager.eval(this.hudComponents_DNA, stack, O_HUDCOMPONENTS, this, this.index); } /* SETTERS */ - public GunConfig rec(Receiver... receivers) { this.receivers_DNA = receivers; return this; } + public GunConfig rec(Receiver... receivers) { this.receivers_DNA = receivers; for(Receiver r : receivers_DNA) r.parent = this; return this; } public GunConfig dura(float dura) { this.durability_DNA = dura; return this; } public GunConfig draw(int draw) { this.drawDuration_DNA = draw; return this; } public GunConfig inspect(int inspect) { this.inspectDuration_DNA = inspect; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java index ad5d9cc4f..60b8b7b25 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java +++ b/src/main/java/com/hbm/items/weapon/sedna/ItemGunBaseNT.java @@ -99,7 +99,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei public GunConfig getConfig(ItemStack stack, int index) { GunConfig cfg = configs_DNA[index]; if(stack == null) return cfg; - return WeaponModManager.eval(cfg, stack, O_GUNCONFIG + index, this); + return WeaponModManager.eval(cfg, stack, O_GUNCONFIG + index, this, index); } public int getConfigCount() { @@ -150,6 +150,10 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei list.add("Damage with current ammo: " + dmg * bullet.damageMult + (bullet.projectilesMin > 1 ? (" x" + (bullet.projectilesMin != bullet.projectilesMax ? (bullet.projectilesMin + "-" + bullet.projectilesMax) : bullet.projectilesMin)) : "")); } } + + for(ItemStack upgrade : WeaponModManager.getUpgradeItems(stack, i)) { + list.add(EnumChatFormatting.YELLOW + upgrade.getDisplayName()); + } } switch(this.quality) { @@ -160,10 +164,6 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IEquipRecei case SECRET: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.DARK_RED : EnumChatFormatting.RED) + "SECRET"); break; case DEBUG: list.add((BobMathUtil.getBlink() ? EnumChatFormatting.YELLOW : EnumChatFormatting.GOLD) + "DEBUG"); break; } - - for(ItemStack upgrade : WeaponModManager.getUpgradeItems(stack)) { - list.add(EnumChatFormatting.YELLOW + upgrade.getDisplayName()); break; - } } @Override diff --git a/src/main/java/com/hbm/items/weapon/sedna/Receiver.java b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java index e25988fee..b87515a1a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/Receiver.java +++ b/src/main/java/com/hbm/items/weapon/sedna/Receiver.java @@ -54,6 +54,7 @@ public class Receiver { } protected int index; + protected GunConfig parent; protected float baseDamage_DNA; protected int delayAfterFire_DNA; protected int delayAfterDryFire_DNA; @@ -85,36 +86,36 @@ public class Receiver { protected BiConsumer onRecoil_DNA; /* GETTERS */ - public float getBaseDamage(ItemStack stack) { return WeaponModManager.eval(this.baseDamage_DNA, stack, F_BASEDAMAGE, this); } - public int getDelayAfterFire(ItemStack stack) { return WeaponModManager.eval(this.delayAfterFire_DNA, stack, I_DELAYAFTERFIRE, this); } - public int getDelayAfterDryFire(ItemStack stack) { return WeaponModManager.eval(this.delayAfterDryFire_DNA, stack, I_DELAYAFTERDRYFIRE, this); } - public int getRoundsPerCycle(ItemStack stack) { return WeaponModManager.eval(this.roundsPerCycle_DNA, stack, I_ROUNDSPERCYCLE, this); } - public float getInnateSpread(ItemStack stack) { return WeaponModManager.eval(this.spreadInnate_DNA, stack, F_SPRADINNATE, this); } - public float getAmmoSpread(ItemStack stack) { return WeaponModManager.eval(this.spreadMultAmmo_DNA, stack, F_SPREADAMMO, this); } - public float getHipfireSpread(ItemStack stack) { return WeaponModManager.eval(this.spreadPenaltyHipfire_DNA, stack, F_SPREADHIPFIRE, this); } - public float getDurabilitySpread(ItemStack stack) { return WeaponModManager.eval(this.spreadDurability_DNA, stack, F_SPREADDURABILITY, this); } - public boolean getRefireOnHold(ItemStack stack) { return WeaponModManager.eval(this.refireOnHold_DNA, stack, B_REFIREONHOLD, this); } - public boolean getRefireAfterDry(ItemStack stack) { return WeaponModManager.eval(this.refireAfterDry_DNA, stack, B_REFIREAFTERDRY, this); } - public boolean getDoesDryFire(ItemStack stack) { return WeaponModManager.eval(this.doesDryFire_DNA, stack, B_DOESDRYFIRE, this); } - public boolean getDoesDryFireAfterAuto(ItemStack stack) { return WeaponModManager.eval(this.doesDryFireAfterAuto_DNA, stack, B_DOESDRYFIREAFTERAUTO, this); } - public boolean getEjectOnFire(ItemStack stack) { return WeaponModManager.eval(this.ejectOnFire_DNA, stack, B_EJECTONFIRE, this); } - public boolean getReloadOnEmpty(ItemStack stack) { return WeaponModManager.eval(this.reloadOnEmpty_DNA, stack, B_RELOADONEMPTY, this); } - public int getReloadBeginDuration(ItemStack stack) { return WeaponModManager.eval(this.reloadBeginDuration_DNA, stack, I_RELOADBEGINDURATION, this); } - public int getReloadCycleDuration(ItemStack stack) { return WeaponModManager.eval(this.reloadCycleDuration_DNA, stack, I_RELOADCYCLEDURATION, this); } - public int getReloadEndDuration(ItemStack stack) { return WeaponModManager.eval(this.reloadEndDuration_DNA, stack, I_RELOADENDDURATION, this); } - public int getReloadCockOnEmptyPre(ItemStack stack) { return WeaponModManager.eval(this.reloadCockOnEmptyPre_DNA, stack, I_RELOADCOCKONEMPTYPRE, this); } - public int getReloadCockOnEmptyPost(ItemStack stack) { return WeaponModManager.eval(this.reloadCockOnEmptyPost_DNA, stack, I_RELOADCOCKONEMPTYPOST, this); } - public int getJamDuration(ItemStack stack) { return WeaponModManager.eval(this.jamDuration_DNA, stack, I_JAMDURATION, this); } - public String getFireSound(ItemStack stack) { return WeaponModManager.eval(this.fireSound_DNA, stack, S_FIRESOUND, this); } - public float getFireVolume(ItemStack stack) { return WeaponModManager.eval(this.fireVolume_DNA, stack, F_FIREVOLUME, this); } - public float getFirePitch(ItemStack stack) { return WeaponModManager.eval(this.firePitch_DNA, stack, F_FIREPITCH, this); } - public IMagazine getMagazine(ItemStack stack) { return WeaponModManager.eval(this.magazine_DNA, stack, O_MAGAZINE, this); } - public Vec3 getProjectileOffset(ItemStack stack) { return WeaponModManager.eval(this.projectileOffset_DNA, stack, O_PROJECTILEOFFSET, this); } - public Vec3 getProjectileOffsetScoped(ItemStack stack) { return WeaponModManager.eval(this.projectileOffsetScoped_DNA, stack, O_PROJECTILEOFFSETSCOPED, this); } + public float getBaseDamage(ItemStack stack) { return WeaponModManager.eval(this.baseDamage_DNA, stack, F_BASEDAMAGE, this, parent.index); } + public int getDelayAfterFire(ItemStack stack) { return WeaponModManager.eval(this.delayAfterFire_DNA, stack, I_DELAYAFTERFIRE, this, parent.index); } + public int getDelayAfterDryFire(ItemStack stack) { return WeaponModManager.eval(this.delayAfterDryFire_DNA, stack, I_DELAYAFTERDRYFIRE, this, parent.index); } + public int getRoundsPerCycle(ItemStack stack) { return WeaponModManager.eval(this.roundsPerCycle_DNA, stack, I_ROUNDSPERCYCLE, this, parent.index); } + public float getInnateSpread(ItemStack stack) { return WeaponModManager.eval(this.spreadInnate_DNA, stack, F_SPRADINNATE, this, parent.index); } + public float getAmmoSpread(ItemStack stack) { return WeaponModManager.eval(this.spreadMultAmmo_DNA, stack, F_SPREADAMMO, this, parent.index); } + public float getHipfireSpread(ItemStack stack) { return WeaponModManager.eval(this.spreadPenaltyHipfire_DNA, stack, F_SPREADHIPFIRE, this, parent.index); } + public float getDurabilitySpread(ItemStack stack) { return WeaponModManager.eval(this.spreadDurability_DNA, stack, F_SPREADDURABILITY, this, parent.index); } + public boolean getRefireOnHold(ItemStack stack) { return WeaponModManager.eval(this.refireOnHold_DNA, stack, B_REFIREONHOLD, this, parent.index); } + public boolean getRefireAfterDry(ItemStack stack) { return WeaponModManager.eval(this.refireAfterDry_DNA, stack, B_REFIREAFTERDRY, this, parent.index); } + public boolean getDoesDryFire(ItemStack stack) { return WeaponModManager.eval(this.doesDryFire_DNA, stack, B_DOESDRYFIRE, this, parent.index); } + public boolean getDoesDryFireAfterAuto(ItemStack stack) { return WeaponModManager.eval(this.doesDryFireAfterAuto_DNA, stack, B_DOESDRYFIREAFTERAUTO, this, parent.index); } + public boolean getEjectOnFire(ItemStack stack) { return WeaponModManager.eval(this.ejectOnFire_DNA, stack, B_EJECTONFIRE, this, parent.index); } + public boolean getReloadOnEmpty(ItemStack stack) { return WeaponModManager.eval(this.reloadOnEmpty_DNA, stack, B_RELOADONEMPTY, this, parent.index); } + public int getReloadBeginDuration(ItemStack stack) { return WeaponModManager.eval(this.reloadBeginDuration_DNA, stack, I_RELOADBEGINDURATION, this, parent.index); } + public int getReloadCycleDuration(ItemStack stack) { return WeaponModManager.eval(this.reloadCycleDuration_DNA, stack, I_RELOADCYCLEDURATION, this, parent.index); } + public int getReloadEndDuration(ItemStack stack) { return WeaponModManager.eval(this.reloadEndDuration_DNA, stack, I_RELOADENDDURATION, this, parent.index); } + public int getReloadCockOnEmptyPre(ItemStack stack) { return WeaponModManager.eval(this.reloadCockOnEmptyPre_DNA, stack, I_RELOADCOCKONEMPTYPRE, this, parent.index); } + public int getReloadCockOnEmptyPost(ItemStack stack) { return WeaponModManager.eval(this.reloadCockOnEmptyPost_DNA, stack, I_RELOADCOCKONEMPTYPOST, this, parent.index); } + public int getJamDuration(ItemStack stack) { return WeaponModManager.eval(this.jamDuration_DNA, stack, I_JAMDURATION, this, parent.index); } + public String getFireSound(ItemStack stack) { return WeaponModManager.eval(this.fireSound_DNA, stack, S_FIRESOUND, this, parent.index); } + public float getFireVolume(ItemStack stack) { return WeaponModManager.eval(this.fireVolume_DNA, stack, F_FIREVOLUME, this, parent.index); } + public float getFirePitch(ItemStack stack) { return WeaponModManager.eval(this.firePitch_DNA, stack, F_FIREPITCH, this, parent.index); } + public IMagazine getMagazine(ItemStack stack) { return WeaponModManager.eval(this.magazine_DNA, stack, O_MAGAZINE, this, parent.index); } + public Vec3 getProjectileOffset(ItemStack stack) { return WeaponModManager.eval(this.projectileOffset_DNA, stack, O_PROJECTILEOFFSET, this, parent.index); } + public Vec3 getProjectileOffsetScoped(ItemStack stack) { return WeaponModManager.eval(this.projectileOffsetScoped_DNA, stack, O_PROJECTILEOFFSETSCOPED, this, parent.index); } - public BiFunction getCanFire(ItemStack stack) { return WeaponModManager.eval(this.canFire_DNA, stack, FUN_CANFIRE, this); } - public BiConsumer getOnFire(ItemStack stack) { return WeaponModManager.eval(this.onFire_DNA, stack, CON_ONFIRE, this); } - public BiConsumer getRecoil(ItemStack stack) { return WeaponModManager.eval(this.onRecoil_DNA, stack, CON_ONRECOIL, this); } + public BiFunction getCanFire(ItemStack stack) { return WeaponModManager.eval(this.canFire_DNA, stack, FUN_CANFIRE, this, parent.index); } + public BiConsumer getOnFire(ItemStack stack) { return WeaponModManager.eval(this.onFire_DNA, stack, CON_ONFIRE, this, parent.index); } + public BiConsumer getRecoil(ItemStack stack) { return WeaponModManager.eval(this.onRecoil_DNA, stack, CON_ONRECOIL, this, parent.index); } /* SETTERS */ public Receiver dmg(float dmg) { this.baseDamage_DNA = dmg; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java index 78a31db04..1a08b871b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java @@ -22,7 +22,7 @@ import net.minecraft.nbt.NBTTagCompound; */ public class WeaponModManager { - public static final String KEY_MOD_LIST = "KEY_MOD_LIST"; + public static final String KEY_MOD_LIST = "KEY_MOD_LIST_"; /** Mapping of mods to IDs, keep the register order consistent! */ public static HashBiMap idToMod = HashBiMap.create(); @@ -45,9 +45,9 @@ public class WeaponModManager { new WeaponModDefinition(new ItemStack(ModItems.weapon_mod_test, 1, EnumModTest.MULTI.ordinal())).addDefault(TEST_MULTI); } - public static ItemStack[] getUpgradeItems(ItemStack stack) { + public static ItemStack[] getUpgradeItems(ItemStack stack, int cfg) { if(!stack.hasTagCompound()) return new ItemStack[0]; - int[] modIds = stack.stackTagCompound.getIntArray(KEY_MOD_LIST); + int[] modIds = stack.stackTagCompound.getIntArray(KEY_MOD_LIST + cfg); if(modIds.length == 0) return new ItemStack[0]; ItemStack[] mods = new ItemStack[modIds.length]; for(int i = 0; i < mods.length; i++) { @@ -61,7 +61,7 @@ public class WeaponModManager { } /** Installs the supplied mods to the gun */ - public static void install(ItemStack stack, ItemStack... mods) { + public static void install(ItemStack stack, int cfg, ItemStack... mods) { List toInstall = new ArrayList(); ComparableStack gun = new ComparableStack(stack); @@ -83,18 +83,18 @@ public class WeaponModManager { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); int[] modIds = new int[toInstall.size()]; for(int i = 0; i < modIds.length; i++) modIds[i] = idToMod.inverse().get(toInstall.get(i)); - stack.stackTagCompound.setIntArray(KEY_MOD_LIST, modIds); + stack.stackTagCompound.setIntArray(KEY_MOD_LIST + cfg, modIds); } /** Wipes all mods from the gun */ - public static void uninstall(ItemStack stack) { + public static void uninstall(ItemStack stack, int cfg) { if(stack.hasTagCompound()) { - stack.stackTagCompound.removeTag(KEY_MOD_LIST); + stack.stackTagCompound.removeTag(KEY_MOD_LIST + cfg); //no need to clean up empty stackTagCompound because gun NBT is never empty anyway } } - public static boolean isApplicable(ItemStack gun, ItemStack mod, boolean checkMutex) { + public static boolean isApplicable(ItemStack gun, ItemStack mod, int cfg, boolean checkMutex) { if(gun == null || mod == null) return false; //if either stacks are null WeaponModDefinition def = stackToMod.get(new ComparableStack(mod)); if(def == null) return false; //if the mod stack doesn't have a mod definition @@ -102,7 +102,7 @@ public class WeaponModManager { if(newMod == null) newMod = def.modByGun.get(null); //if there's no per-gun mod, default to null key if(newMod == null) return false; //if there's just no mod applicable - if(checkMutex) for(int i : gun.stackTagCompound.getIntArray(KEY_MOD_LIST)) { + if(checkMutex) for(int i : gun.stackTagCompound.getIntArray(KEY_MOD_LIST + cfg)) { IWeaponMod iMod = idToMod.get(i); if(iMod != null) for(String mutex0 : newMod.getSlots()) for(String mutex1 : iMod.getSlots()) if(mutex0.equals(mutex1)) return false; //if any of the mod's slots are already taken } @@ -121,11 +121,11 @@ public class WeaponModManager { /** Scrapes all upgrades, iterates over them and evaluates the given value. The parent (i.e. holder of the base value) * is passed for context (so upgrades can differentiate primary and secondary receivers for example). Passing a null * stack causes the base value to be returned. */ - public static T eval(T base, ItemStack stack, String key, Object parent) { + public static T eval(T base, ItemStack stack, String key, Object parent, int cfg) { if(stack == null) return base; if(!stack.hasTagCompound()) return base; - for(int i : stack.stackTagCompound.getIntArray(KEY_MOD_LIST)) { + for(int i : stack.stackTagCompound.getIntArray(KEY_MOD_LIST + cfg)) { IWeaponMod mod = idToMod.get(i); if(mod != null) base = mod.eval(base, stack, key, parent); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestDamage.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestDamage.java index 72e96b0cf..bfde63994 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestDamage.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestDamage.java @@ -14,7 +14,7 @@ public class WeaponModTestDamage extends WeaponModBase { public T eval(T base, ItemStack gun, String key, Object parent) { if(parent instanceof Receiver && key == Receiver.F_BASEDAMAGE && base instanceof Float) { - return fagSlop((float) base * 1.5F, base); + return fagSlop((Float) base * 1.5F, base); } return base; diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestFirerate.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestFirerate.java index 701c3b538..5c5bf0af2 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestFirerate.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestFirerate.java @@ -14,7 +14,7 @@ public class WeaponModTestFirerate extends WeaponModBase { public T eval(T base, ItemStack gun, String key, Object parent) { if(parent instanceof Receiver && key == Receiver.I_DELAYAFTERFIRE && base instanceof Integer) { - return fagSlop(Math.max((int) base / 2, 1), base); + return fagSlop(Math.max((Integer) base / 2, 1), base); } return base; diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestMulti.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestMulti.java index 37cf77d2d..7f5b89823 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestMulti.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModTestMulti.java @@ -14,7 +14,7 @@ public class WeaponModTestMulti extends WeaponModBase { public T eval(T base, ItemStack gun, String key, Object parent) { if(parent instanceof Receiver && key == Receiver.I_ROUNDSPERCYCLE && base instanceof Integer) { - return fagSlop((int) base * 3, base); + return fagSlop((Integer) base * 3, base); } return base; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAberrator.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAberrator.java index 6ca37d74c..4673f7998 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAberrator.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAberrator.java @@ -185,6 +185,14 @@ public class ItemRenderAberrator extends ItemRenderWeaponBase { GL11.glTranslated(-0.5,-1, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -12.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0,-1, 0.5); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java index a21b57e25..718526180 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAm180.java @@ -134,6 +134,14 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase { GL11.glTranslated(1.5, 0, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 0, -2); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java index 85be22898..8d0bcfe47 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAtlas.java @@ -126,6 +126,14 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 1.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 1.5, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java index 165cd20cc..de524c481 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderBolter.java @@ -105,6 +105,14 @@ public class ItemRenderBolter extends ItemRenderWeaponBase { GL11.glTranslated(-0.25, -0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -12.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java index 829aa1a3a..f8ea3afc7 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCarbine.java @@ -108,6 +108,13 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase { 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); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java index 582bdfaa5..32d2949c8 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChemthrower.java @@ -77,6 +77,14 @@ public class ItemRenderChemthrower extends ItemRenderWeaponBase { GL11.glTranslated(0.875, 0, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -10D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.5, -0.5); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java index 111232870..84a709149 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCoilgun.java @@ -74,6 +74,14 @@ public class ItemRenderCoilgun extends ItemRenderWeaponBase { GL11.glTranslated(-0.25, -0.25, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -20D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.25, 0.5); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java index b2b7250f4..8dfd5df3a 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderCongoLake.java @@ -159,6 +159,14 @@ public class ItemRenderCongoLake extends ItemRenderWeaponBase { GL11.glTranslated(0, -1.25, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -15D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -1.25, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java index af2507d02..dfdaf13c5 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDANI.java @@ -127,6 +127,14 @@ public class ItemRenderDANI extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 1.5, 0); + } + @Override public void renderInv(ItemStack stack) { @@ -176,6 +184,16 @@ public class ItemRenderDANI extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_FLAT); } + @Override + public void renderModTable(ItemStack stack, int index) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(index == 1 ? ResourceManager.dani_celestial_tex : ResourceManager.dani_lunar_tex); + ResourceManager.bio_revolver.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java index f4875de7f..981138487 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDebug.java @@ -112,6 +112,13 @@ public class ItemRenderDebug extends ItemRenderWeaponBase { GL11.glRotated(45, 0, 1, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java index 5647da9ae..1b5612bc4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderDoubleBarrel.java @@ -149,6 +149,13 @@ public class ItemRenderDoubleBarrel extends ItemRenderWeaponBase { } } + @Override + public void setupModTable(ItemStack stack) { + double scale = -8.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderEOTT.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderEOTT.java index efd3d67f7..76d653de5 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderEOTT.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderEOTT.java @@ -160,6 +160,14 @@ public class ItemRenderEOTT extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -12.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0,-1, 0.5); + } + @Override public void renderInv(ItemStack stack) { @@ -226,6 +234,11 @@ public class ItemRenderEOTT extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_FLAT); } + @Override + public void renderModTable(ItemStack stack, int index) { + renderOther(stack, ItemRenderType.INVENTORY); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java index 8991d63f6..2ff627a40 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java @@ -110,6 +110,13 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { GL11.glTranslated(0, -0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -8.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java index 5ec21511a..f1c9f3560 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlamer.java @@ -103,6 +103,14 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase { GL11.glTranslated(-1, 1, 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, 0, 1); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java index d97381832..3bcabc96b 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFlaregun.java @@ -105,6 +105,13 @@ public class ItemRenderFlaregun extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java index a38c70419..2908e52d1 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFolly.java @@ -193,6 +193,14 @@ public class ItemRenderFolly extends ItemRenderWeaponBase { GL11.glTranslated(0, -0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -8.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java index 82d881174..e5e34b83d 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderG3.java @@ -129,6 +129,14 @@ public class ItemRenderG3 extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 0.5, -0.5); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java index a04e1de80..cc488ab5f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderGreasegun.java @@ -133,6 +133,14 @@ public class ItemRenderGreasegun extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 2, 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); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java index 16ee124cd..21948b4a8 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHangman.java @@ -126,6 +126,13 @@ public class ItemRenderHangman extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -2.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java index 7e1d6e858..55020e68b 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHeavyRevolver.java @@ -149,6 +149,14 @@ public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase { } } + @Override + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.5, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java index ce5c9b3fa..df4bbf90c 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderHenry.java @@ -152,6 +152,13 @@ public class ItemRenderHenry extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -7.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java index 1a3f532a5..4e69f2572 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLAG.java @@ -126,6 +126,14 @@ public class ItemRenderLAG extends ItemRenderWeaponBase { GL11.glTranslated(2.5, 1, 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, 0.5, -2); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java index 8f2e30bff..9ff95eb5b 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLasrifle.java @@ -90,6 +90,14 @@ public class ItemRenderLasrifle extends ItemRenderWeaponBase { GL11.glTranslated(0.5, 0, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -6.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java index 58cdfeb8e..bb46a00b3 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderLiberator.java @@ -142,6 +142,13 @@ public class ItemRenderLiberator extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -8.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java index 80ebca69f..2069d94a6 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderM2.java @@ -93,6 +93,14 @@ public class ItemRenderM2 extends ItemRenderWeaponBase { GL11.glTranslated(0.5, -1.25, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -15D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -1.5, -0.5); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMAS36.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMAS36.java index 6dd2cd761..5ff2805ca 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMAS36.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMAS36.java @@ -144,6 +144,28 @@ public class ItemRenderMAS36 extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0.5, 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, -0.25, -2.5); + } + + @Override + public void renderModTable(ItemStack stack, int index) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mas36_tex); + ResourceManager.mas36.renderPart("Gun"); + ResourceManager.mas36.renderPart("Stock"); + ResourceManager.mas36.renderPart("Bolt"); + //ResourceManager.mas36.renderPart("Scope"); + //ResourceManager.mas36.renderPart("Bayonet"); + GL11.glShadeModel(GL11.GL_FLAT); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java index 81ca1a2ec..e8dfaa091 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMaresleg.java @@ -146,6 +146,13 @@ public class ItemRenderMaresleg extends ItemRenderWeaponBase { } } + @Override + public void setupModTable(ItemStack stack) { + double scale = -8.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java index 5a60a4aaf..16c90287a 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMareslegAkimbo.java @@ -135,6 +135,14 @@ public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -12.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.5, 1); + } + @Override public void renderInv(ItemStack stack) { @@ -168,6 +176,11 @@ public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_FLAT); } + @Override + public void renderModTable(ItemStack stack, int index) { + renderOther(stack, ItemRenderType.INVENTORY); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java index ed44d201f..d3060f661 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java @@ -103,6 +103,13 @@ public class ItemRenderMinigun extends ItemRenderWeaponBase { GL11.glTranslated(-0.25, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -6.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java index f5d651a4e..09149bfa4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMissileLauncher.java @@ -132,6 +132,14 @@ public class ItemRenderMissileLauncher extends ItemRenderWeaponBase { GL11.glTranslated(0, -0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -10D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java index f0e5380ff..6ad4374c6 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPanzerschreck.java @@ -90,6 +90,13 @@ public class ItemRenderPanzerschreck extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -10D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java index 7f06a4509..a653d60f4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderPepperbox.java @@ -119,6 +119,13 @@ public class ItemRenderPepperbox extends ItemRenderWeaponBase { GL11.glTranslated(0.5, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -7.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java index 0ec9bfe67..61a50d391 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderQuadro.java @@ -129,6 +129,14 @@ public class ItemRenderQuadro extends ItemRenderWeaponBase { GL11.glTranslated(0, -1, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -30D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -1.125, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java index baff66af8..5cab21b0b 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSPAS12.java @@ -122,6 +122,14 @@ public class ItemRenderSPAS12 extends ItemRenderWeaponBase { GL11.glTranslated(4.25, -0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -10D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.5, -4.25); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java index 1d7c1e123..64bf11710 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java @@ -163,6 +163,13 @@ public class ItemRenderSTG77 extends ItemRenderWeaponBase { GL11.glTranslated(-0.5, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -7.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java index fbb11f533..313ff60a4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderShredder.java @@ -158,6 +158,14 @@ public class ItemRenderShredder extends ItemRenderWeaponBase { GL11.glTranslated(-1.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, 0, 1.5); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java index 384383688..3e72596e1 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderStinger.java @@ -118,6 +118,14 @@ public class ItemRenderStinger extends ItemRenderWeaponBase { GL11.glTranslated(0.25, -2.5, 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, -4, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java index 54226be04..440cdb9d5 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTau.java @@ -80,6 +80,13 @@ public class ItemRenderTau extends ItemRenderWeaponBase { GL11.glTranslated(-0.25, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -10D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java index e961d5517..c10d2c977 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderTeslaCannon.java @@ -127,6 +127,14 @@ public class ItemRenderTeslaCannon extends ItemRenderWeaponBase { GL11.glTranslated(0, 0.5, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -8.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 0.5, 0); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java index 40e267595..d2bcd93ae 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUzi.java @@ -124,6 +124,14 @@ public class ItemRenderUzi extends ItemRenderWeaponBase { GL11.glTranslated(0, 1, 0); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -6.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 1, -4); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java index dded1cc0d..fa98585e3 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderUziAkimbo.java @@ -138,6 +138,14 @@ public class ItemRenderUziAkimbo extends ItemRenderWeaponBase { GL11.glScaled(scale, scale, scale); } + @Override + public void setupModTable(ItemStack stack) { + double scale = -6.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 1, -4); + } + @Override public void renderEquipped(ItemStack stack) { @@ -164,6 +172,20 @@ public class ItemRenderUziAkimbo extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_FLAT); } + @Override + public void renderModTable(ItemStack stack, int index) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex); + ResourceManager.uzi.renderPart(index == 1 ? "GunMirror" : "Gun"); + ResourceManager.uzi.renderPart("StockBack"); + ResourceManager.uzi.renderPart("StockFront"); + ResourceManager.uzi.renderPart("Slide"); + ResourceManager.uzi.renderPart("Magazine"); + GL11.glShadeModel(GL11.GL_FLAT); + } + @Override public void renderOther(ItemStack stack, ItemRenderType type) { GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java index 7a5b32926..634f50e4a 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderWeaponBase.java @@ -251,6 +251,16 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer { double scale = 0.125D; GL11.glScaled(scale, scale, scale); } + + public void setupModTable(ItemStack stack) { + double scale = -5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + } + + public void renderModTable(ItemStack stack, int index) { + renderOther(stack, ItemRenderType.INVENTORY); + } public abstract void renderFirstPerson(ItemStack stack); public void renderOther(ItemStack stack, ItemRenderType type) { } diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_weapon_modifier.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_weapon_modifier.png index e2a97539a..ed654c869 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_weapon_modifier.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_weapon_modifier.png differ