mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
0000000000
This commit is contained in:
parent
ec389b72f9
commit
23e58c7e1d
@ -26,6 +26,9 @@
|
||||
* Fluid traits are now listed in a fixed order instead of being arranged randomly
|
||||
* Hidden fluid trait descriptions will now be added below the visible part of that trait instead of below the last visible trait
|
||||
* The methusalem turret no longer drops anything when broken
|
||||
* Gaseous fuels now have a combusion multiplier of 1.5 instead of 1.25
|
||||
* LPG now has half the base burn value, preventing an unreasonable jump in efficiency simply by liquefacting petroleum gas
|
||||
* While overall slightly less efficient that petroleum gas per unit of petroleum needed, LPG is still very much desirable due to being much easier to burn at max efficiency
|
||||
|
||||
## Fixed
|
||||
* Fixed the structure toggle on the world creation screen not working correctly on most world types
|
||||
|
||||
@ -1048,6 +1048,7 @@ public class ModBlocks {
|
||||
public static Block machine_orbus;
|
||||
|
||||
public static Block launch_pad;
|
||||
public static Block launch_pad_rusted;
|
||||
public static Block launch_pad_large;
|
||||
|
||||
public static Block machine_missile_assembly;
|
||||
@ -2167,6 +2168,7 @@ public class ModBlocks {
|
||||
tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla");
|
||||
|
||||
launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad");
|
||||
launch_pad_rusted = new LaunchPadRusted(Material.iron).setBlockName("launch_pad_rusted").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad_rusted");
|
||||
launch_pad_large = new LaunchPadLarge(Material.iron).setBlockName("launch_pad_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar");
|
||||
machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
@ -3517,6 +3519,7 @@ public class ModBlocks {
|
||||
//Missile Blocks
|
||||
GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(launch_pad_rusted, launch_pad_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(launch_pad_large, launch_pad_large.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(compact_launcher, compact_launcher.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName());
|
||||
|
||||
81
src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java
Normal file
81
src/main/java/com/hbm/blocks/bomb/LaunchPadRusted.java
Normal file
@ -0,0 +1,81 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class LaunchPadRusted extends BlockDummyable implements IBomb {
|
||||
|
||||
public LaunchPadRusted(Material mat) {
|
||||
super(mat);
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, -0.5D, 1D, -0.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, -1.5D, 1.5D, 1D, -0.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, 0.5D, -0.5D, 1D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(0.5D, 0D, 0.5D, 1.5D, 1D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5D, 0.5D, -1.5D, 0.5D, 1D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0.5D, -0.5D, 1.5D, 1D, 0.5D));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityLaunchPadRusted();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
return this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {0, 0, 1, 1, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BombReturnCode explode(World world, int x, int y, int z) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
int[] corePos = findCore(world, x, y, z);
|
||||
if(corePos != null){
|
||||
TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]);
|
||||
if(core instanceof TileEntityLaunchPadRusted){
|
||||
TileEntityLaunchPadRusted entity = (TileEntityLaunchPadRusted)core;
|
||||
return entity.launch();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return BombReturnCode.UNDEFINED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block blockIn){
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
int[] corePos = findCore(world, x, y, z);
|
||||
if(corePos != null){
|
||||
TileEntity core = world.getTileEntity(corePos[0], corePos[1], corePos[2]);
|
||||
if(core instanceof TileEntityLaunchPadRusted){
|
||||
TileEntityLaunchPadRusted launchpad = (TileEntityLaunchPadRusted)core;
|
||||
launchpad.updateRedstonePower(x, y, z);
|
||||
}
|
||||
}
|
||||
}
|
||||
super.onNeighborBlockChange( world, x, y, z, blockIn);
|
||||
}
|
||||
}
|
||||
@ -155,17 +155,19 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider {
|
||||
}
|
||||
|
||||
public static enum SnowglobeType {
|
||||
NONE( "NONE"),
|
||||
RIVETCITY( "Rivet City"),
|
||||
TENPENNYTOWER( "Tenpenny Tower"),
|
||||
LUCKY38( "Lucky 38"),
|
||||
SIERRAMADRE( "Sierra Madre"),
|
||||
PRYDWEN( "Prydwen");
|
||||
NONE( "NONE", null),
|
||||
RIVETCITY( "Rivet City", "Welcome to Rivet City. Please wait while the bridge extends."),
|
||||
TENPENNYTOWER( "Tenpenny Tower", "Tenpenny Tower is the brainchild of Allistair Tenpenny, a British refugee who came to the Capital Wasteland seeking his fortune."),
|
||||
LUCKY38( "Lucky 38", "My guess? Leads to a big cashout at some casino - and if the \"38\" on it is any indication... well... Lucky 38 it is."),
|
||||
SIERRAMADRE( "Sierra Madre", "It's the moment you've been waiting for, the reason we're all here - the Gala Event, the Grand Opening of the Sierra Madre Casino."),
|
||||
PRYDWEN( "Prydwen", "People of the Commonwealth. Do not interfere. Our intentions are peaceful. We are the Brotherhood of Steel.");
|
||||
|
||||
public String label;
|
||||
public String inscription;
|
||||
|
||||
private SnowglobeType(String label) {
|
||||
private SnowglobeType(String label, String inscription) {
|
||||
this.label = label;
|
||||
this.inscription = inscription;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerLaunchPadRusted extends Container {
|
||||
|
||||
private TileEntityLaunchPadRusted launchpad;
|
||||
|
||||
public ContainerLaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) {
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 154 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 212));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int par2) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return launchpad.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
@ -621,8 +621,8 @@ public class Fluids {
|
||||
registerCalculatedFuel(CRACKOIL, (baseline / 1D * flammabilityLow * demandLow * complexityCracking), 0, null);
|
||||
registerCalculatedFuel(CRACKOIL_DS, (baseline / 1D * flammabilityLow * demandLow * complexityCracking * complexityHydro), 0, null);
|
||||
registerCalculatedFuel(OIL_COKER, (baseline / 1D * flammabilityLow * demandLow * complexityCoker), 0, null);
|
||||
registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.25, FuelGrade.GAS);
|
||||
registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.25, FuelGrade.GAS);
|
||||
registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.5, FuelGrade.GAS);
|
||||
registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.5, FuelGrade.GAS);
|
||||
registerCalculatedFuel(HEAVYOIL, (baseline / 0.5 * flammabilityLow * demandLow * complexityRefinery), 1.25D, FuelGrade.LOW);
|
||||
registerCalculatedFuel(SMEAR, (baseline / 0.35 * flammabilityLow * demandLow * complexityRefinery * complexityFraction), 1.25D, FuelGrade.LOW);
|
||||
registerCalculatedFuel(RECLAIMED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant), 1.25D, FuelGrade.LOW);
|
||||
@ -641,10 +641,10 @@ public class Fluids {
|
||||
registerCalculatedFuel(LIGHTOIL_DS, (baseline / 0.15 * flammabilityNormal * demandHigh * complexityRefinery * complexityHydro), 1.5D, FuelGrade.MEDIUM);
|
||||
registerCalculatedFuel(LIGHTOIL_CRACK, (baseline / 0.30 * flammabilityNormal * demandHigh * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM);
|
||||
registerCalculatedFuel(KEROSENE, (baseline / 0.09 * flammabilityNormal * demandHigh * complexityRefinery * complexityFraction), 1.5D, FuelGrade.AERO);
|
||||
registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.25, FuelGrade.GAS);
|
||||
registerCalculatedFuel(PETROLEUM, (baseline / 0.10 * flammabilityNormal * demandMedium * complexityRefinery), 1.5, FuelGrade.GAS);
|
||||
registerCalculatedFuel(AROMATICS, (baseline / 0.15 * flammabilityLow * demandHigh * complexityRefinery * complexityCracking), 0, null);
|
||||
registerCalculatedFuel(UNSATURATEDS, (baseline / 0.15 * flammabilityHigh * demandHigh * complexityRefinery * complexityCracking), 0, null);
|
||||
registerCalculatedFuel(LPG, (baseline / 0.05 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH);
|
||||
registerCalculatedFuel(LPG, (baseline / 0.1 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH);
|
||||
registerCalculatedFuel(NITAN, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 25L, 2.5, FuelGrade.HIGH);
|
||||
registerCalculatedFuel(BALEFIRE, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 100L, 2.5, FuelGrade.HIGH);
|
||||
registerCalculatedFuel(HEAVYOIL_VACUUM, (baseline / 0.4 * flammabilityLow * demandLow * complexityVacuum), 1.25D, FuelGrade.LOW);
|
||||
@ -656,7 +656,7 @@ public class Fluids {
|
||||
registerCalculatedFuel(DIESEL_REFORM, DIESEL.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH);
|
||||
registerCalculatedFuel(DIESEL_CRACK_REFORM, DIESEL_CRACK.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH);
|
||||
registerCalculatedFuel(KEROSENE_REFORM, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 1.5D, FuelGrade.AERO);
|
||||
registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.25D, FuelGrade.GAS);
|
||||
registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.5D, FuelGrade.GAS);
|
||||
|
||||
//all hail the spreadsheet
|
||||
//the spreadsheet must not be questioned
|
||||
|
||||
@ -284,7 +284,7 @@ public class GUIAnvil extends GuiContainer {
|
||||
|
||||
for(AStack stack : recipe.input) {
|
||||
if(stack instanceof ComparableStack) {
|
||||
ItemStack input = ((ComparableStack) stack).toStack();
|
||||
ComparableStack input = (ComparableStack) stack;
|
||||
boolean hasItem = false;
|
||||
int amount = 0;
|
||||
for(int i = 0; i < inventory.mainInventory.length; i++) {
|
||||
@ -292,15 +292,15 @@ public class GUIAnvil extends GuiContainer {
|
||||
if(stackItem == null) {
|
||||
continue;
|
||||
}
|
||||
if(stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) {
|
||||
if(input.matchesRecipe(stackItem, true)) {
|
||||
hasItem = true;
|
||||
amount += stackItem.stackSize;
|
||||
}
|
||||
}
|
||||
if(hasItem && amount >= stack.stacksize) {
|
||||
list.add(">" + input.stackSize + "x " + input.getDisplayName());
|
||||
list.add(">" + input.stacksize + "x " + input.toStack().getDisplayName());
|
||||
} else {
|
||||
list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName());
|
||||
list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + input.toStack().getDisplayName());
|
||||
}
|
||||
} else if(stack instanceof OreDictStack) {
|
||||
OreDictStack input = (OreDictStack) stack;
|
||||
|
||||
84
src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java
Normal file
84
src/main/java/com/hbm/inventory/gui/GUILaunchPadRusted.java
Normal file
@ -0,0 +1,84 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerLaunchPadRusted;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUILaunchPadRusted extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_launch_pad_rusted.png");
|
||||
private TileEntityLaunchPadRusted launchpad;
|
||||
|
||||
public GUILaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) {
|
||||
super(new ContainerLaunchPadRusted(invPlayer, tedf));
|
||||
launchpad = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 236;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
super.drawScreen(mouseX, mouseY, f);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.launchpad.hasCustomInventoryName() ? this.launchpad.getInventoryName() : I18n.format(this.launchpad.getInventoryName());
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 4, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
/*if(launchpad.slots[0] != null) {
|
||||
Consumer<TextureManager> renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular());
|
||||
if(renderer != null) {
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100);
|
||||
|
||||
double scale = 1D;
|
||||
|
||||
if(launchpad.slots[0].getItem() instanceof ItemMissile) {
|
||||
ItemMissile missile = (ItemMissile) launchpad.slots[0].getItem();
|
||||
switch(missile.formFactor) {
|
||||
case ABM: scale = 1.45D; break;
|
||||
case MICRO: scale = 2.5D; break;
|
||||
case V2: scale = 1.75D; break;
|
||||
case STRONG: scale = 1.375D; break;
|
||||
case HUGE: scale = 0.925D; break;
|
||||
case ATLAS: scale = 0.875D; break;
|
||||
case OTHER: break;
|
||||
}
|
||||
if(missile == ModItems.missile_stealth) scale = 1.125D;
|
||||
}
|
||||
|
||||
GL11.glRotatef(90, 0, 1, 0);
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glScalef(-8, -8, -8);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotatef(75, 0.0F, 1.0F, 0.0F);
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
renderer.accept(Minecraft.getMinecraft().getTextureManager());
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
@ -1,8 +1,11 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
@ -78,7 +81,7 @@ public class GUIScreenSnowglobe extends GuiScreen {
|
||||
}
|
||||
|
||||
nextLevel += 10;
|
||||
}
|
||||
}*/
|
||||
|
||||
if(this.snowglobe.type.inscription != null) {
|
||||
|
||||
@ -87,14 +90,14 @@ public class GUIScreenSnowglobe extends GuiScreen {
|
||||
|
||||
nextLevel += 10;
|
||||
|
||||
String[] list = this.snowglobe.type.inscription.split("\\$");
|
||||
List<String> list = I18nUtil.autoBreakWithParagraphs(this.fontRendererObj, this.snowglobe.type.inscription, 280);
|
||||
for(String text : list) {
|
||||
this.fontRendererObj.drawStringWithShadow(text, (int)(left + sizeX / 2 - this.fontRendererObj.getStringWidth(text) / 2), nextLevel, 0x009900);
|
||||
nextLevel += 10;
|
||||
}
|
||||
|
||||
nextLevel += 10;
|
||||
}*/
|
||||
}
|
||||
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
}
|
||||
|
||||
@ -23,6 +23,7 @@ import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
|
||||
public class AnvilRecipes {
|
||||
@ -753,7 +754,7 @@ public class AnvilRecipes {
|
||||
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.25F)
|
||||
}
|
||||
).setTier(3));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.deco_computer),
|
||||
new AnvilOutput[] {
|
||||
@ -765,6 +766,58 @@ public class AnvilRecipes {
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.deco_crt, 1, OreDictionary.WILDCARD_VALUE),
|
||||
new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModItems.crt_display, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 2)),
|
||||
new AnvilOutput(new ItemStack(ModItems.wire_copper, 2)),
|
||||
new AnvilOutput(new ItemStack(ModItems.wire_gold, 2), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.circuit_aluminium, 1), 0.25F)
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.deco_toaster, 1, 0), //iron toaster
|
||||
new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_iron, 3)),
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 1)),
|
||||
new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F),
|
||||
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F)
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.deco_toaster, 1, 1), // steel toaster
|
||||
new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_steel, 3)),
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)),
|
||||
new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F),
|
||||
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F)
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.deco_toaster, 1, 2), // wooden toaster
|
||||
new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModItems.powder_sawdust, 4)),
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 4)),
|
||||
new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.gem_alexandrite, 1), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.flame_pony, 1), 0.01F)
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.filing_cabinet),
|
||||
new AnvilOutput[] {
|
||||
|
||||
@ -1303,6 +1303,10 @@ public class ModItems {
|
||||
public static Item bobmazon_tools;
|
||||
public static Item bobmazon_hidden;
|
||||
|
||||
public static Item launch_code_piece;
|
||||
public static Item launch_code;
|
||||
public static Item launch_key;
|
||||
|
||||
public static Item missile_assembly;
|
||||
public static Item missile_generic;
|
||||
public static Item missile_anti_ballistic;
|
||||
@ -3929,6 +3933,9 @@ public class ModItems {
|
||||
designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_range_alt");
|
||||
designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual");
|
||||
designator_arty_range = new ItemDesignatorArtyRange().setUnlocalizedName("designator_arty_range").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_arty_range");
|
||||
launch_code_piece = new Item().setUnlocalizedName("launch_code_piece").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code_piece");
|
||||
launch_code = new Item().setUnlocalizedName("launch_code").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code");
|
||||
launch_key = new Item().setUnlocalizedName("launch_key").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_key");
|
||||
missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly");
|
||||
missile_generic = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic");
|
||||
missile_anti_ballistic = new ItemMissile(MissileFormFactor.ABM, MissileTier.TIER1).setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic");
|
||||
@ -6843,9 +6850,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName());
|
||||
GameRegistry.registerItem(designator_manual, designator_manual.getUnlocalizedName());
|
||||
GameRegistry.registerItem(designator_arty_range, designator_arty_range.getUnlocalizedName());
|
||||
//GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName());
|
||||
GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName());
|
||||
//GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName());
|
||||
GameRegistry.registerItem(linker, linker.getUnlocalizedName());
|
||||
GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName());
|
||||
GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName());
|
||||
@ -6877,6 +6882,9 @@ public class ModItems {
|
||||
GameRegistry.registerItem(padlock, padlock.getUnlocalizedName());
|
||||
GameRegistry.registerItem(padlock_reinforced, padlock_reinforced.getUnlocalizedName());
|
||||
GameRegistry.registerItem(padlock_unbreakable, padlock_unbreakable.getUnlocalizedName());
|
||||
GameRegistry.registerItem(launch_code_piece, launch_code_piece.getUnlocalizedName());
|
||||
GameRegistry.registerItem(launch_code, launch_code.getUnlocalizedName());
|
||||
GameRegistry.registerItem(launch_key, launch_key.getUnlocalizedName());
|
||||
|
||||
//Missiles
|
||||
//Tier 0
|
||||
|
||||
@ -3,17 +3,25 @@ package com.hbm.render.tileentity;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockSnowglobe.SnowglobeType;
|
||||
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.render.loader.HFRWavefrontObject;
|
||||
import com.hbm.util.EnumUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
public class RenderSnowglobe extends TileEntitySpecialRenderer {
|
||||
public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
public static final IModelCustom snowglobe = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/snowglobe.obj"), false).asDisplayList();
|
||||
public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png");
|
||||
@ -25,21 +33,29 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||
|
||||
GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0);
|
||||
|
||||
TileEntitySnowglobe te = (TileEntitySnowglobe) tile;
|
||||
renderSnowglobe(te.type);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
public static void renderSnowglobe(SnowglobeType type) {
|
||||
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
|
||||
GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
double scale = 0.0625D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
this.bindTexture(socket);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(socket);
|
||||
snowglobe.renderPart("Socket");
|
||||
|
||||
TileEntitySnowglobe te = (TileEntitySnowglobe) tile;
|
||||
this.bindTexture(features);
|
||||
|
||||
switch(te.type) {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(features);
|
||||
|
||||
switch(type) {
|
||||
case NONE: break;
|
||||
case RIVETCITY: snowglobe.renderPart("RivetCity"); break;
|
||||
case TENPENNYTOWER: snowglobe.renderPart("TenpennyTower"); break;
|
||||
@ -48,7 +64,28 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer {
|
||||
case PRYDWEN: snowglobe.renderPart("Prydwen"); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.snowglobe);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -4, 0);
|
||||
GL11.glScaled(10, 10, 10);
|
||||
}
|
||||
public void renderCommonWithStack(ItemStack item) {
|
||||
GL11.glTranslated(0, 0.25, 0);
|
||||
GL11.glScaled(3, 3, 3);
|
||||
SnowglobeType type = EnumUtil.grabEnumSafely(SnowglobeType.class, item.getItemDamage());
|
||||
renderSnowglobe(type);
|
||||
}};
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,14 +88,12 @@ public class TileEntityLaunchPad extends TileEntityLaunchPadBase implements IEne
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
this.delay = nbt.getInteger("delay");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setInteger("delay", delay);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,132 @@
|
||||
package com.hbm.tileentity.bomb;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.hbm.interfaces.IBomb.BombReturnCode;
|
||||
import com.hbm.inventory.container.ContainerLaunchPadRusted;
|
||||
import com.hbm.inventory.gui.GUILaunchPadRusted;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider {
|
||||
|
||||
public int prevRedstonePower;
|
||||
public int redstonePower;
|
||||
public Set<BlockPos> activatedBlocks = new HashSet<>(4);
|
||||
|
||||
public boolean missileLoaded;
|
||||
|
||||
public TileEntityLaunchPadRusted() {
|
||||
super(3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.launchPadRusted";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
}
|
||||
|
||||
public BombReturnCode launch() {
|
||||
return BombReturnCode.UNDEFINED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
this.redstonePower = nbt.getInteger("redstonePower");
|
||||
this.prevRedstonePower = nbt.getInteger("prevRedstonePower");
|
||||
NBTTagCompound activatedBlocks = nbt.getCompoundTag("activatedBlocks");
|
||||
this.activatedBlocks.clear();
|
||||
for(int i = 0; i < activatedBlocks.func_150296_c().size() / 3; i++) {
|
||||
this.activatedBlocks.add(new BlockPos(activatedBlocks.getInteger("x" + i), activatedBlocks.getInteger("y" + i), activatedBlocks.getInteger("z" + i)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setInteger("redstonePower", redstonePower);
|
||||
nbt.setInteger("prevRedstonePower", prevRedstonePower);
|
||||
NBTTagCompound activatedBlocks = new NBTTagCompound();
|
||||
int i = 0;
|
||||
for(BlockPos p : this.activatedBlocks) {
|
||||
activatedBlocks.setInteger("x" + i, p.getX());
|
||||
activatedBlocks.setInteger("y" + i, p.getY());
|
||||
activatedBlocks.setInteger("z" + i, p.getZ());
|
||||
i++;
|
||||
}
|
||||
nbt.setTag("activatedBlocks", activatedBlocks);
|
||||
}
|
||||
|
||||
public void updateRedstonePower(int x, int y, int z) {
|
||||
BlockPos pos = new BlockPos(x, y, z);
|
||||
boolean powered = worldObj.isBlockIndirectlyGettingPowered(x, y, z);
|
||||
boolean contained = activatedBlocks.contains(pos);
|
||||
if(!contained && powered){
|
||||
activatedBlocks.add(pos);
|
||||
if(redstonePower == -1){
|
||||
redstonePower = 0;
|
||||
}
|
||||
redstonePower++;
|
||||
} else if(contained && !powered){
|
||||
activatedBlocks.remove(pos);
|
||||
redstonePower--;
|
||||
if(redstonePower == 0){
|
||||
redstonePower = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 2,
|
||||
yCoord,
|
||||
zCoord - 2,
|
||||
xCoord + 3,
|
||||
yCoord + 15,
|
||||
zCoord + 3
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new ContainerLaunchPadRusted(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUILaunchPadRusted(player.inventory, this);
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.8 KiB |
BIN
src/main/resources/assets/hbm/textures/items/launch_code.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/launch_code.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 290 B |
Binary file not shown.
|
After Width: | Height: | Size: 280 B |
BIN
src/main/resources/assets/hbm/textures/items/launch_key.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/launch_key.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 233 B |
Loading…
x
Reference in New Issue
Block a user