mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
c25adf5014
14
changelog
14
changelog
@ -1,10 +1,10 @@
|
||||
## Changed
|
||||
* Added a (LEGACY) tag to the schrabidium transmutator
|
||||
* Existing schrabidium transmutators are now way slower
|
||||
* get souped
|
||||
* Removed the schraranium tooltip mentioning the transmutator
|
||||
* Changed the last remaining recipes that use the old steel pipes item, as well as the recipe for the steel pipes
|
||||
* Any remaining steel pipes can be either smelted in a crucible or shredded
|
||||
* Added more QMAW pages
|
||||
* Removed most old particle accelerator blocks from the creative inventory
|
||||
* All dual wielded guns now render more accurately when dropped instead of only showing one gun
|
||||
* Added support for left handed guns (currently unused)*
|
||||
* Removed the presentations for the old particle accelerator and schottky diode
|
||||
|
||||
## Fixed
|
||||
* Fixed various issues with the localization
|
||||
* Fixed wood burner only being able to create one ash pile per item burned, even when that item yields more, creating a backlog in the internal ash value
|
||||
* Fixed some QMAW link icons not having the correct block lighting applied
|
||||
@ -1841,13 +1841,13 @@ public class ModBlocks {
|
||||
machine_exposure_chamber = new MachineExposureChamber(Material.iron).setBlockName("machine_exposure_chamber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium");
|
||||
machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen");
|
||||
|
||||
hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating");
|
||||
hadron_plating_blue = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_blue");
|
||||
hadron_plating_black = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_black").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_black");
|
||||
hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow");
|
||||
hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped");
|
||||
hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz");
|
||||
hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass");
|
||||
hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating");
|
||||
hadron_plating_blue = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating_blue");
|
||||
hadron_plating_black = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_black").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating_black");
|
||||
hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow");
|
||||
hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped");
|
||||
hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz");
|
||||
hadron_plating_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_plating_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass");
|
||||
hadron_coil_alloy = new BlockHadronCoil(Material.iron, 10).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_alloy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_alloy");
|
||||
hadron_coil_gold = new BlockHadronCoil(Material.iron, 25).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_gold");
|
||||
hadron_coil_neodymium = new BlockHadronCoil(Material.iron, 50).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_neodymium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_neodymium");
|
||||
@ -1857,16 +1857,16 @@ public class ModBlocks {
|
||||
hadron_coil_starmetal = new BlockHadronCoil(Material.iron, 1000).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_starmetal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_starmetal");
|
||||
hadron_coil_chlorophyte = new BlockHadronCoil(Material.iron, 2500).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_chlorophyte").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_chlorophyte");
|
||||
hadron_coil_mese = new BlockHadronCoil(Material.iron, 10000).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_mese").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_mese");
|
||||
hadron_power = new BlockHadronPower(Material.iron, 1000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_10m = new BlockHadronPower(Material.iron, 10000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_100m = new BlockHadronPower(Material.iron, 100000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_100m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_1g = new BlockHadronPower(Material.iron, 1000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_1g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_10g = new BlockHadronPower(Material.iron, 10000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis");
|
||||
hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass");
|
||||
hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access");
|
||||
hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core");
|
||||
hadron_power = new BlockHadronPower(Material.iron, 1000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_10m = new BlockHadronPower(Material.iron, 10000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_100m = new BlockHadronPower(Material.iron, 100000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_100m").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_1g = new BlockHadronPower(Material.iron, 1000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_1g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_power_10g = new BlockHadronPower(Material.iron, 10000000000L).setStepSound(Block.soundTypeMetal).setBlockName("hadron_power_10g").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_power");
|
||||
hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
|
||||
hadron_analysis = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_analysis");
|
||||
hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass");
|
||||
hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_access");
|
||||
hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":hadron_core");
|
||||
|
||||
pa_source = new BlockPASource().setStepSound(Block.soundTypeMetal).setBlockName("pa_source").setHardness(5.0F).setResistance(10.0F);
|
||||
pa_beamline = new BlockPABeamline().setStepSound(Block.soundTypeMetal).setBlockName("pa_beamline").setHardness(5.0F).setResistance(10.0F);
|
||||
|
||||
@ -7,6 +7,7 @@ import static net.minecraftforge.common.util.ForgeDirection.WEST;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import com.hbm.world.gen.nbt.INBTBlockTransformable;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -20,23 +21,23 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockChain extends Block {
|
||||
public class BlockChain extends Block implements INBTBlockTransformable {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconEnd;
|
||||
|
||||
|
||||
public BlockChain(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
public int getRenderType() {
|
||||
@ -47,7 +48,7 @@ public class BlockChain extends Block {
|
||||
public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
@ -60,14 +61,14 @@ public class BlockChain extends Block {
|
||||
|
||||
if(world.isSideSolid(x, y - 1, z, ForgeDirection.UP, false) || (world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y, z) == world.getBlockMetadata(x, y - 1, z)))
|
||||
return this.blockIcon;
|
||||
|
||||
|
||||
return this.iconEnd;
|
||||
}
|
||||
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
func_149797_b(world.getBlockMetadata(x, y, z));
|
||||
|
||||
@ -76,11 +77,11 @@ public class BlockChain extends Block {
|
||||
}
|
||||
|
||||
public void func_149797_b(int meta) {
|
||||
|
||||
|
||||
float f = 0.125F;
|
||||
|
||||
|
||||
if(meta == 0) {
|
||||
|
||||
|
||||
this.minX = 3 * f;
|
||||
this.minY = 0;
|
||||
this.minZ = 3 * f;
|
||||
@ -109,24 +110,24 @@ public class BlockChain extends Block {
|
||||
this.setBlockBounds(0.0F, 0.0F, 3 * f, f, 1.0F, 5 * f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
this.setBlockBoundsBasedOnState(world, x, y, z);
|
||||
return super.getSelectedBoundingBoxFromPool(world, x, y, z);
|
||||
}
|
||||
|
||||
|
||||
public boolean canPlaceBlockAt(World world, int x, int y, int z) {
|
||||
|
||||
|
||||
if(world.isSideSolid(x, y + 1, z, ForgeDirection.DOWN) || world.getBlock(x, y + 1, z) == this)
|
||||
return true;
|
||||
|
||||
|
||||
return world.isSideSolid(x - 1, y, z, EAST ) ||
|
||||
world.isSideSolid(x + 1, y, z, WEST ) ||
|
||||
world.isSideSolid(x, y, z - 1, SOUTH) ||
|
||||
world.isSideSolid(x, y, z + 1, NORTH);
|
||||
}
|
||||
|
||||
|
||||
public int onBlockPlaced(World world, int x, int y, int z, int side, float p_149660_6_, float p_149660_7_, float p_149660_8_, int meta)
|
||||
{
|
||||
int j1 = meta;
|
||||
@ -142,12 +143,12 @@ public class BlockChain extends Block {
|
||||
|
||||
if(side == 5 && world.isSideSolid(x - 1, y, z, EAST))
|
||||
j1 = 5;
|
||||
|
||||
|
||||
if(j1 == 0) {
|
||||
|
||||
|
||||
if(world.getBlock(x, y + 1, z) == this)
|
||||
return world.getBlockMetadata(x, y + 1, z);
|
||||
|
||||
|
||||
if(world.isSideSolid(x, y + 1, z, ForgeDirection.DOWN))
|
||||
return 0;
|
||||
}
|
||||
@ -155,30 +156,30 @@ public class BlockChain extends Block {
|
||||
if(j1 == 0) {
|
||||
if(world.isSideSolid(x, y, z + 1, NORTH))
|
||||
j1 = 2;
|
||||
|
||||
|
||||
if(world.isSideSolid(x, y, z - 1, SOUTH))
|
||||
j1 = 3;
|
||||
|
||||
|
||||
if(world.isSideSolid(x + 1, y, z, WEST))
|
||||
j1 = 4;
|
||||
|
||||
|
||||
if(world.isSideSolid(x - 1, y, z, EAST))
|
||||
j1 = 5;
|
||||
}
|
||||
|
||||
return j1;
|
||||
}
|
||||
|
||||
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
|
||||
|
||||
|
||||
int l = world.getBlockMetadata(x, y, z);
|
||||
boolean flag = false;
|
||||
|
||||
|
||||
if(world.getBlock(x, y + 1, z) == this && world.getBlockMetadata(x, y, z) == world.getBlockMetadata(x, y + 1, z)) {
|
||||
super.onNeighborBlockChange(world, x, y, z, block);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(world.isSideSolid(x, y + 1, z, ForgeDirection.DOWN) && world.getBlockMetadata(x, y, z) == 0) {
|
||||
super.onNeighborBlockChange(world, x, y, z, block);
|
||||
return;
|
||||
@ -201,4 +202,12 @@ public class BlockChain extends Block {
|
||||
|
||||
super.onNeighborBlockChange(world, x, y, z, block);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int transformMeta(int meta, int coordBaseMode) {
|
||||
if (coordBaseMode == 0) return meta;
|
||||
if (meta == 0) return meta;
|
||||
if (meta == 1) return meta;
|
||||
return INBTBlockTransformable.transformMetaDeco(meta, coordBaseMode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@ import com.hbm.tileentity.network.TileEntityCableBaseNT;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
|
||||
import com.hbm.world.gen.nbt.INBTBlockTransformable;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -37,7 +38,7 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, ILookOverlay, ITooltipProvider {
|
||||
public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, INBTBlockTransformable, ILookOverlay, ITooltipProvider {
|
||||
|
||||
@SideOnly(Side.CLIENT) protected IIcon overlayGauge;
|
||||
|
||||
@ -84,6 +85,11 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass,
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int transformMeta(int meta, int coordBaseMode) {
|
||||
return INBTBlockTransformable.transformMetaDeco(meta, coordBaseMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
|
||||
@ -178,5 +184,6 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass,
|
||||
if((PREFIX_VALUE + "deltasecond").equals(name)) return "" + deltaLastSecond;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@ import com.hbm.render.block.RenderBlockMultipass;
|
||||
import com.hbm.tileentity.network.TileEntityPipeBaseNT;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
|
||||
import com.hbm.world.gen.nbt.INBTBlockTransformable;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -37,7 +38,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, ILookOverlay, ITooltipProvider {
|
||||
public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, INBTBlockTransformable, ILookOverlay, ITooltipProvider {
|
||||
|
||||
@SideOnly(Side.CLIENT) protected IIcon overlay;
|
||||
@SideOnly(Side.CLIENT) protected IIcon overlayGauge;
|
||||
@ -108,6 +109,11 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL
|
||||
return IBlockMultiPass.getRenderType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int transformMeta(int meta, int coordBaseMode) {
|
||||
return INBTBlockTransformable.transformMetaDeco(meta, coordBaseMode);
|
||||
}
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements SimpleComponent, CompatHandler.OCComponent, IRORValueProvider {
|
||||
|
||||
|
||||
@ -87,7 +87,7 @@ public class WorldConfig {
|
||||
public static int dungeonStructure = 64;
|
||||
public static int relayStructure = 500;
|
||||
public static int satelliteStructure = 500;
|
||||
public static int factoryStructure = 1000;
|
||||
// public static int factoryStructure = 1000;
|
||||
public static int dudStructure = 500;
|
||||
public static int spaceshipStructure = 1000;
|
||||
public static int barrelStructure = 5000;
|
||||
@ -210,7 +210,7 @@ public class WorldConfig {
|
||||
dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64);
|
||||
relayStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.05_relaySpawn", "Spawn relay on every nTH chunk", 500);
|
||||
satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500);
|
||||
factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000);
|
||||
// factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000);
|
||||
dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500);
|
||||
spaceshipStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.11_spaceshipSpawn", "Spawn spaceship on every nTH chunk", 1000);
|
||||
barrelStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.12_barrelSpawn", "Spawn waste tank on every nTH chunk", 5000);
|
||||
@ -251,7 +251,7 @@ public class WorldConfig {
|
||||
dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000);
|
||||
relayStructure = CommonConfig.setDefZero(relayStructure, 1000);
|
||||
satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000);
|
||||
factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000);
|
||||
// factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000);
|
||||
dudStructure = CommonConfig.setDefZero(dudStructure, 1000);
|
||||
spaceshipStructure = CommonConfig.setDefZero(spaceshipStructure, 1000);
|
||||
barrelStructure = CommonConfig.setDefZero(barrelStructure, 1000);
|
||||
|
||||
@ -290,13 +290,13 @@ public class HbmWorldGen implements IWorldGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
if(WorldConfig.factoryStructure > 0 && rand.nextInt(WorldConfig.factoryStructure) == 0) {
|
||||
int x = i + rand.nextInt(16);
|
||||
int z = j + rand.nextInt(16);
|
||||
int y = world.getHeightValue(x, z);
|
||||
|
||||
new Factory().generate(world, rand, x, y, z);
|
||||
}
|
||||
// if(WorldConfig.factoryStructure > 0 && rand.nextInt(WorldConfig.factoryStructure) == 0) {
|
||||
// int x = i + rand.nextInt(16);
|
||||
// int z = j + rand.nextInt(16);
|
||||
// int y = world.getHeightValue(x, z);
|
||||
//
|
||||
// new Factory().generate(world, rand, x, y, z);
|
||||
// }
|
||||
|
||||
if(WorldConfig.dudStructure > 0 && rand.nextInt(WorldConfig.dudStructure) == 0) {
|
||||
int x = i + 8 + rand.nextInt(16);
|
||||
|
||||
@ -89,6 +89,12 @@ public class ModEventHandlerRenderer {
|
||||
ModelRenderer box = getBoxFromType(renderer, EnumPlayerPart.LEFT_ARM);
|
||||
box.isHidden = true;
|
||||
}
|
||||
if(renderGun.isLeftHanded()) {
|
||||
partsHidden[EnumPlayerPart.LEFT_ARM.ordinal()] = true;
|
||||
partsHidden[EnumPlayerPart.RIGHT_ARM.ordinal()] = true;
|
||||
getBoxFromType(renderer, EnumPlayerPart.LEFT_ARM).isHidden = true;
|
||||
getBoxFromType(renderer, EnumPlayerPart.RIGHT_ARM).isHidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,6 +127,7 @@ public class ModEventHandlerRenderer {
|
||||
RenderPlayer renderer = event.renderer;
|
||||
|
||||
boolean akimbo = false;
|
||||
boolean leftHand = false;
|
||||
|
||||
ItemStack held = player.getHeldItem();
|
||||
|
||||
@ -128,9 +135,8 @@ public class ModEventHandlerRenderer {
|
||||
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED);
|
||||
if(customRenderer instanceof ItemRenderWeaponBase) {
|
||||
ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer;
|
||||
if(renderGun.isAkimbo()) {
|
||||
akimbo = true;
|
||||
}
|
||||
if(renderGun.isAkimbo()) akimbo = true;
|
||||
if(renderGun.isLeftHanded()) leftHand = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,6 +154,23 @@ public class ModEventHandlerRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
if(leftHand) {
|
||||
ModelBiped biped = renderer.modelBipedMain;
|
||||
renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY =
|
||||
0.1F + biped.bipedHead.rotateAngleY;
|
||||
renderer.modelArmorChestplate.bipedRightArm.rotateAngleY = renderer.modelArmor.bipedRightArm.rotateAngleY = biped.bipedRightArm.rotateAngleY =
|
||||
-0.5F + biped.bipedHead.rotateAngleY;
|
||||
|
||||
if(!isManly) {
|
||||
AbstractClientPlayer acp = (AbstractClientPlayer) player;
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(acp.getLocationSkin());
|
||||
biped.bipedLeftArm.isHidden = false;
|
||||
biped.bipedLeftArm.render(0.0625F);
|
||||
biped.bipedRightArm.isHidden = false;
|
||||
biped.bipedRightArm.render(0.0625F);
|
||||
}
|
||||
}
|
||||
|
||||
if(isManly) {
|
||||
if(manlyModel == null)
|
||||
manlyModel = new ModelMan();
|
||||
@ -200,6 +223,11 @@ public class ModEventHandlerRenderer {
|
||||
ModelBiped biped = renderer.modelBipedMain;
|
||||
renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY = 0.1F + biped.bipedHead.rotateAngleY;
|
||||
}
|
||||
if(renderGun.isLeftHanded()) {
|
||||
ModelBiped biped = renderer.modelBipedMain;
|
||||
renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY = 0.1F + biped.bipedHead.rotateAngleY;
|
||||
renderer.modelArmorChestplate.bipedRightArm.rotateAngleY = renderer.modelArmor.bipedRightArm.rotateAngleY = biped.bipedRightArm.rotateAngleY = -0.5F + biped.bipedHead.rotateAngleY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -216,7 +244,7 @@ public class ModEventHandlerRenderer {
|
||||
|
||||
if(customRenderer instanceof ItemRenderWeaponBase) {
|
||||
ItemRenderWeaponBase renderWeapon = (ItemRenderWeaponBase) customRenderer;
|
||||
if(renderWeapon.isAkimbo()) {
|
||||
if(renderWeapon.isAkimbo() || renderWeapon.isLeftHanded()) {
|
||||
GL11.glPushMatrix();
|
||||
renderer.modelBipedMain.bipedLeftArm.isHidden = false;
|
||||
renderer.modelBipedMain.bipedLeftArm.postRender(0.0625F);
|
||||
@ -235,8 +263,14 @@ public class ModEventHandlerRenderer {
|
||||
GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F);
|
||||
renderWeapon.setupThirdPersonAkimbo(held);
|
||||
renderWeapon.renderEquippedAkimbo(held);
|
||||
if(renderWeapon.isLeftHanded()) {
|
||||
GL11.glTranslatef(0.1875F, 0F, 0.0F);
|
||||
renderWeapon.setupThirdPerson(held);
|
||||
renderWeapon.renderEquippedAkimbo(held);
|
||||
} else {
|
||||
renderWeapon.setupThirdPersonAkimbo(held);
|
||||
renderWeapon.renderEquippedAkimbo(held);
|
||||
}
|
||||
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@ -83,6 +83,8 @@ public class StructureManager {
|
||||
public static final NBTStructure plane1 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/crashed_plane_1.nbt"));
|
||||
public static final NBTStructure plane2 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/crashed_plane_2.nbt"));
|
||||
|
||||
public static final NBTStructure factory = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/factory.nbt"));
|
||||
|
||||
public static final NBTStructure spire = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/spire.nbt"));
|
||||
|
||||
// public static final NBTStructure test_rot = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/test-rot.nbt"));
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.qmaw.components;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
import com.hbm.qmaw.GuiQMAW;
|
||||
import com.hbm.qmaw.ManualElement;
|
||||
@ -64,6 +65,7 @@ public class QComponentLink extends ManualElement {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
GL11.glRotated(180, 1, 0, 0);
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
@ -71,6 +73,7 @@ public class QComponentLink extends ManualElement {
|
||||
itemRender.renderItemAndEffectIntoGUI(this.font, mc.renderEngine, this.icon, x, y - 1);
|
||||
itemRender.renderItemOverlayIntoGUI(this.font, mc.renderEngine, this.icon, x, y - 1, null);
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
|
||||
@ -193,6 +193,27 @@ public class ItemRenderDANI extends ItemRenderWeaponBase {
|
||||
ResourceManager.bio_revolver.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEntity(ItemStack stack) {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(-2, 1, 0);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_lunar_tex);
|
||||
ResourceManager.bio_revolver.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(2, 1, 0);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.dani_celestial_tex);
|
||||
ResourceManager.bio_revolver.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOther(ItemStack stack, ItemRenderType type) {
|
||||
|
||||
@ -238,6 +238,34 @@ public class ItemRenderEOTT extends ItemRenderWeaponBase {
|
||||
public void renderModTable(ItemStack stack, int index) {
|
||||
renderOther(stack, ItemRenderType.INVENTORY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEntity(ItemStack stack) {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.eott_tex);
|
||||
|
||||
GL11.glTranslated(-1, 1, 0);
|
||||
ResourceManager.aberrator.renderPart("Gun");
|
||||
ResourceManager.aberrator.renderPart("Hammer");
|
||||
ResourceManager.aberrator.renderPart("Magazine");
|
||||
ResourceManager.aberrator.renderPart("Slide");
|
||||
ResourceManager.aberrator.renderPart("Sight");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(1, 1, 0);
|
||||
ResourceManager.aberrator.renderPart("Gun");
|
||||
ResourceManager.aberrator.renderPart("Hammer");
|
||||
ResourceManager.aberrator.renderPart("Magazine");
|
||||
ResourceManager.aberrator.renderPart("Slide");
|
||||
ResourceManager.aberrator.renderPart("Sight");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOther(ItemStack stack, ItemRenderType type) {
|
||||
|
||||
@ -19,7 +19,7 @@ public class ItemRenderHeavyRevolver extends ItemRenderWeaponBase {
|
||||
public ItemRenderHeavyRevolver(ResourceLocation texture) {
|
||||
this.texture = texture;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }
|
||||
|
||||
|
||||
@ -180,6 +180,28 @@ public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase {
|
||||
public void renderModTable(ItemStack stack, int index) {
|
||||
renderOther(stack, ItemRenderType.INVENTORY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEntity(ItemStack stack) {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.maresleg_tex);
|
||||
|
||||
GL11.glTranslated(-1, 1, 0);
|
||||
ResourceManager.maresleg.renderPart("Gun");
|
||||
ResourceManager.maresleg.renderPart("Lever");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(1, 1, 0);
|
||||
ResourceManager.maresleg.renderPart("Gun");
|
||||
ResourceManager.maresleg.renderPart("Lever");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOther(ItemStack stack, ItemRenderType type) {
|
||||
|
||||
@ -195,6 +195,7 @@ public class ItemRenderUziAkimbo extends ItemRenderWeaponBase {
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEntity(ItemStack stack) {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
@ -33,8 +33,9 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer {
|
||||
public static final ResourceLocation laser_flash = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/laser_flash.png");
|
||||
|
||||
public static float interp;
|
||||
|
||||
|
||||
public boolean isAkimbo() { return false; }
|
||||
public boolean isLeftHanded() { return false; }
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
||||
@ -53,7 +54,8 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer {
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
switch(type) {
|
||||
case EQUIPPED_FIRST_PERSON: setupFirstPerson(item); renderFirstPerson(item); break;
|
||||
case EQUIPPED: setupThirdPerson(item); renderEquipped(item); break;
|
||||
case EQUIPPED:
|
||||
if(isLeftHanded()) break; setupThirdPerson(item); renderEquipped(item); break;
|
||||
case INVENTORY: setupInv(item); renderInv(item); break;
|
||||
case ENTITY: setupEntity(item); renderEntity(item); break;
|
||||
}
|
||||
|
||||
@ -90,9 +90,9 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
|
||||
if(type == EnumAshType.COAL) ashLevelCoal += burn;
|
||||
if(type == EnumAshType.MISC) ashLevelMisc += burn;
|
||||
int threshold = 2000;
|
||||
if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold;
|
||||
if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold;
|
||||
if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold;
|
||||
while(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold;
|
||||
while(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold;
|
||||
while(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold;
|
||||
|
||||
this.maxBurnTime = this.burnTime = burn;
|
||||
ItemStack container = slots[0].getItem().getContainerItem(slots[0]);
|
||||
|
||||
@ -23,6 +23,14 @@ public class MobUtil {
|
||||
/**Unlike the above two, the Double is interpreted as minimum soot level, instead of armor slot **/
|
||||
public static HashMap<Double, List<WeightedRandomObject>> slotPoolGuns = new HashMap<>();
|
||||
|
||||
//slop pools
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolGunsTier1 = new HashMap<>();
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolGunsTier2 = new HashMap<>();
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolGunsTier3 = new HashMap<>();
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolMasks = new HashMap<>();
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolHelms = new HashMap<>();
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolTierArmor = new HashMap<>();
|
||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolMelee = new HashMap<>();
|
||||
|
||||
public static void intializeMobPools(){
|
||||
slotPoolCommon.put(4, createSlotPool(8000, new Object[][]{ //new slots, smooth, brushed, no wrinkles // old slots, wrinkled, rusty, not smooth
|
||||
@ -111,6 +119,72 @@ public class MobUtil {
|
||||
{ModItems.wrench, 20}
|
||||
}));
|
||||
|
||||
//For action block
|
||||
slotPoolGunsTier1.put(0, createSlotPool(0, new Object[][]{
|
||||
{ModItems.gun_light_revolver, 16}, {ModItems.gun_greasegun, 8}, {ModItems.gun_maresleg, 2}
|
||||
}));
|
||||
|
||||
slotPoolGunsTier2.put(0, createSlotPool(0, new Object[][]{
|
||||
{ModItems.gun_uzi, 10}, {ModItems.gun_maresleg, 8}, {ModItems.gun_henry, 12}, {ModItems.gun_heavy_revolver, 4}, {ModItems.gun_flaregun, 4}, {ModItems.gun_carbine, 4}
|
||||
}));
|
||||
|
||||
slotPoolGunsTier3.put(0, createSlotPool(0, new Object[][]{
|
||||
{ModItems.gun_uzi, 25}, {ModItems.gun_spas12, 20}, {ModItems.gun_carbine, 20}, {ModItems.gun_g3, 10}, {ModItems.gun_am180, 5}, {ModItems.gun_stg77, 5}
|
||||
}));
|
||||
|
||||
slotPoolMasks.put(4, createSlotPool(0, new Object[][]{
|
||||
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
||||
{ModItems.rag_piss, 4}, {ModItems.goggles, 12}
|
||||
}));
|
||||
|
||||
slotPoolHelms.put(4, createSlotPool(0, new Object[][]{
|
||||
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
||||
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
||||
{ModItems.cobalt_helmet, 2}, {ModItems.hat, 1}, {ModItems.alloy_helmet, 2},
|
||||
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
||||
}));
|
||||
|
||||
slotPoolTierArmor.put(4, createSlotPool(new Object[][]{
|
||||
{ModItems.gas_mask_m65, 20},
|
||||
{ModItems.gas_mask_olde, 15},
|
||||
{ModItems.steel_helmet, 25},
|
||||
{ModItems.titanium_helmet, 15},
|
||||
{ModItems.alloy_helmet, 10},
|
||||
}));
|
||||
|
||||
slotPoolTierArmor.put(3, createSlotPool(new Object[][]{
|
||||
{ModItems.steel_plate, 30},
|
||||
{ModItems.titanium_plate, 20},
|
||||
{ModItems.alloy_plate, 15},
|
||||
{ModItems.cobalt_plate, 5},
|
||||
{ModItems.starmetal_plate, 5}
|
||||
}));
|
||||
|
||||
slotPoolTierArmor.put(2, createSlotPool(new Object[][]{
|
||||
{ModItems.steel_legs, 30},
|
||||
{ModItems.titanium_legs, 20},
|
||||
{ModItems.alloy_legs, 15},
|
||||
{ModItems.cobalt_legs, 5},
|
||||
{ModItems.zirconium_legs, 5}
|
||||
}));
|
||||
|
||||
slotPoolTierArmor.put(1, createSlotPool(new Object[][]{
|
||||
{ModItems.steel_boots, 30},
|
||||
{ModItems.robes_boots, 25},
|
||||
{ModItems.titanium_boots, 20},
|
||||
{ModItems.alloy_boots, 15},
|
||||
{ModItems.hazmat_boots, 10},
|
||||
{ModItems.cobalt_boots, 5},
|
||||
}));
|
||||
|
||||
slotPoolMelee.put(0, createSlotPool(2000, new Object[][]{
|
||||
{ModItems.pipe_lead, 40}, {ModItems.crowbar, 35}, {ModItems.wrench, 30},
|
||||
{ModItems.steel_sword, 25}, {ModItems.titanium_sword, 20},
|
||||
{ModItems.reer_graar, 20}, {ModItems.stopsign, 15},
|
||||
{ModItems.lead_gavel, 12}, {ModItems.wrench_flipped, 10},
|
||||
{ModItems.sopsign, 8}, {ModItems.chernobylsign, 8}
|
||||
}));
|
||||
|
||||
slotPoolAdvRanged = new HashMap<>(slotPoolAdv);
|
||||
slotPoolAdvRanged.remove(0);
|
||||
|
||||
|
||||
@ -1,679 +0,0 @@
|
||||
package com.hbm.wiaj.cannery;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
import com.hbm.wiaj.JarScene;
|
||||
import com.hbm.wiaj.JarScript;
|
||||
import com.hbm.wiaj.WorldInAJar;
|
||||
import com.hbm.wiaj.actions.ActionCreateActor;
|
||||
import com.hbm.wiaj.actions.ActionOffsetBy;
|
||||
import com.hbm.wiaj.actions.ActionRemoveActor;
|
||||
import com.hbm.wiaj.actions.ActionRotateBy;
|
||||
import com.hbm.wiaj.actions.ActionSetBlock;
|
||||
import com.hbm.wiaj.actions.ActionSetZoom;
|
||||
import com.hbm.wiaj.actions.ActionWait;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel.Orientation;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class CanneryHadron extends CanneryBase {
|
||||
|
||||
@Override
|
||||
public ItemStack getIcon() {
|
||||
return new ItemStack(ModBlocks.hadron_core);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "cannery.hadron";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CanneryBase[] seeAlso() {
|
||||
return new CanneryBase[] {
|
||||
new CannerySchottky()
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public JarScript createScript() {
|
||||
WorldInAJar world = new WorldInAJar(25, 5, 25);
|
||||
JarScript script = new JarScript(world);
|
||||
|
||||
|
||||
|
||||
// FIRST SCENE: Show and explain the core component
|
||||
JarScene scene0 = new JarScene(script);
|
||||
scene0.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene0.add(new ActionSetBlock(12, 2, 12, ModBlocks.hadron_core, ForgeDirection.NORTH.ordinal()));
|
||||
|
||||
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.0")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(100));
|
||||
scene0.add(new ActionRemoveActor(1));
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.1")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(100));
|
||||
scene0.add(new ActionRemoveActor(2));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.2")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(3));
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionRotateBy(-90, 0, 10));
|
||||
|
||||
scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 4, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.3")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(4));
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionRotateBy(90, 0, 10));
|
||||
|
||||
|
||||
|
||||
// SECOND SCENE: Begin building a coil around the core component
|
||||
JarScene scene1 = new JarScene(script);
|
||||
|
||||
scene1.add(new ActionSetZoom(4, 0));
|
||||
scene1.add(new ActionSetZoom(-2, 10));
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_alloy));
|
||||
scene1.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
scene1.add(new ActionWait(5));
|
||||
|
||||
scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -25, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.4")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(40));
|
||||
|
||||
for(Block block : new Block[] {
|
||||
ModBlocks.hadron_coil_gold,
|
||||
ModBlocks.hadron_coil_neodymium,
|
||||
ModBlocks.hadron_coil_magtung,
|
||||
ModBlocks.hadron_coil_schrabidium,
|
||||
ModBlocks.hadron_coil_schrabidate,
|
||||
ModBlocks.hadron_coil_starmetal,
|
||||
ModBlocks.hadron_coil_chlorophyte,
|
||||
ModBlocks.hadron_coil_mese
|
||||
}) {
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, block));
|
||||
scene1.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
scene1.add(new ActionWait(4));
|
||||
}
|
||||
|
||||
scene1.add(new ActionWait(20));
|
||||
scene1.add(new ActionRemoveActor(5));
|
||||
scene1.add(new ActionWait(5));
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene1.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 12, ModBlocks.hadron_plating));
|
||||
scene1.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
scene1.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -40, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.5")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(60));
|
||||
scene1.add(new ActionRemoveActor(6));
|
||||
scene1.add(new ActionWait(5));
|
||||
|
||||
|
||||
|
||||
// THIRD SCENE: Add the Access Terminal and Power Plug
|
||||
JarScene scene2 = new JarScene(script);
|
||||
scene2.add(new ActionSetZoom(2, 0));
|
||||
|
||||
scene2.add(new ActionWait(5));
|
||||
|
||||
for(int i = 7; i >= 0; i--) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene2.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 12, ModBlocks.hadron_coil_neodymium));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
scene2.add(new ActionWait(20));
|
||||
|
||||
scene2.add(new ActionSetBlock(12 - 2, 2, 12, Blocks.air));
|
||||
scene2.add(new ActionWait(15));
|
||||
|
||||
scene2.add(new ActionSetBlock(12 - 2, 2, 12, ModBlocks.hadron_access, ForgeDirection.EAST.ordinal()));
|
||||
scene2.add(new ActionWait(10));
|
||||
|
||||
scene2.add(new ActionCreateActor(7, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 36, 18, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.6")}}, 100)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene2.add(new ActionWait(80));
|
||||
scene2.add(new ActionRemoveActor(7));
|
||||
scene2.add(new ActionWait(20));
|
||||
|
||||
scene2.add(new ActionSetBlock(12, 2 + 2, 12, Blocks.air));
|
||||
scene2.add(new ActionWait(15));
|
||||
|
||||
scene2.add(new ActionSetBlock(12, 2 + 2, 12, ModBlocks.hadron_power));
|
||||
scene2.add(new ActionWait(10));
|
||||
|
||||
scene2.add(new ActionCreateActor(8, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.7")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene2.add(new ActionWait(80));
|
||||
scene2.add(new ActionRemoveActor(8));
|
||||
scene2.add(new ActionWait(20));
|
||||
|
||||
|
||||
|
||||
// FOURTH SCENE: Add some coil segments and power them
|
||||
JarScene scene3 = new JarScene(script);
|
||||
scene3.add(new ActionSetZoom(2, 0));
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 11, ModBlocks.hadron_coil_neodymium));
|
||||
scene3.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 11, ModBlocks.hadron_plating));
|
||||
scene3.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
scene3.add(new ActionWait(5));
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium));
|
||||
scene3.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 10, ModBlocks.hadron_plating));
|
||||
scene3.add(new ActionWait(2));
|
||||
}
|
||||
|
||||
scene3.add(new ActionWait(20));
|
||||
|
||||
scene3.add(new ActionSetBlock(12, 2 + 2, 10, Blocks.air));
|
||||
scene3.add(new ActionWait(15));
|
||||
|
||||
scene3.add(new ActionSetBlock(12, 2 + 2, 10, ModBlocks.hadron_power));
|
||||
scene3.add(new ActionWait(10));
|
||||
|
||||
scene3.add(new ActionCreateActor(9, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -28, -28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.8")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene3.add(new ActionWait(40));
|
||||
|
||||
scene3.add(new ActionCreateActor(10, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.0")}, {I18nUtil.resolveKey("cannery.hadron.math.1")}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene3.add(new ActionWait(40));
|
||||
scene3.add(new ActionRemoveActor(10));
|
||||
scene3.add(new ActionWait(5));
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_starmetal));
|
||||
scene3.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
scene3.add(new ActionCreateActor(13, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -12, 28, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.math.2")}, {I18nUtil.resolveKey("cannery.hadron.math.3")}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
|
||||
scene3.add(new ActionWait(80));
|
||||
scene3.add(new ActionRemoveActor(9));
|
||||
scene3.add(new ActionWait(10));
|
||||
|
||||
scene3.add(new ActionCreateActor(11, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.9")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene3.add(new ActionWait(80));
|
||||
scene3.add(new ActionRemoveActor(11));
|
||||
scene3.add(new ActionWait(5));
|
||||
|
||||
scene3.add(new ActionCreateActor(12, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -45, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.10")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene3.add(new ActionWait(80));
|
||||
scene3.add(new ActionRemoveActor(12));
|
||||
scene3.add(new ActionWait(10));
|
||||
|
||||
scene3.add(new ActionRemoveActor(13));
|
||||
|
||||
for(int i = 7; i >= 0; i--) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene3.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 10, ModBlocks.hadron_coil_neodymium));
|
||||
scene3.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// FIFTH SCENE: Add a bend to the coil
|
||||
JarScene scene4 = new JarScene(script);
|
||||
scene4.add(new ActionSetZoom(2, 0));
|
||||
|
||||
scene4.add(new ActionOffsetBy(0, 0, 4, 10));
|
||||
scene4.add(new ActionRotateBy(90, 0, 10));
|
||||
|
||||
|
||||
// BEGIN CORNER SEGMENT
|
||||
for(int z = 9; z >= 7; z--) {
|
||||
for(int x = 11; x <= 14; x++) {
|
||||
if(z == 7 && x == 11) continue;
|
||||
scene4.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
|
||||
scene4.add(new ActionWait(2));
|
||||
}
|
||||
}
|
||||
|
||||
for(int z = 9; z >= 6; z--) {
|
||||
for(int x = 10; x <= 14; x++) {
|
||||
if(z == 6 && x <= 11) continue;
|
||||
if(z <= 7 && x == 10) continue;
|
||||
scene4.add(new ActionSetBlock(x, 1, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene4.add(new ActionWait(2));
|
||||
}
|
||||
}
|
||||
|
||||
for(int z = 9; z >= 6; z--) {
|
||||
for(int x = 10; x <= 14; x++) {
|
||||
if(z == 6 && x <= 11) continue;
|
||||
if(z <= 7 && x == 10) continue;
|
||||
if(z == 9 && x == 12) continue;
|
||||
if(z == 8 && x == 12) continue;
|
||||
if(z == 8 && x == 13) continue;
|
||||
if(z == 8 && x == 14) continue;
|
||||
scene4.add(new ActionSetBlock(x, 2, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene4.add(new ActionWait(2));
|
||||
}
|
||||
}
|
||||
// END CORNER SEGMENT
|
||||
|
||||
|
||||
scene4.add(new ActionWait(5));
|
||||
|
||||
scene4.add(new ActionCreateActor(14, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -8, -35, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.11")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene4.add(new ActionWait(80));
|
||||
scene4.add(new ActionRemoveActor(14));
|
||||
scene4.add(new ActionWait(5));
|
||||
|
||||
scene4.add(new ActionCreateActor(15, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 24, -16, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.12")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene4.add(new ActionWait(80));
|
||||
scene4.add(new ActionRemoveActor(15));
|
||||
scene4.add(new ActionWait(10));
|
||||
|
||||
for(int z = 9; z >= 6; z--) {
|
||||
for(int x = 10; x <= 14; x++) {
|
||||
if(z == 6 && x <= 11) continue;
|
||||
if(z <= 7 && x == 10) continue;
|
||||
scene4.add(new ActionSetBlock(x, 3, z, z == 6 || x == 10 || (z == 7 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene4.add(new ActionWait(2));
|
||||
}
|
||||
}
|
||||
|
||||
for(int z = 9; z >= 7; z--) {
|
||||
for(int x = 11; x <= 14; x++) {
|
||||
if(z == 7 && x == 11) continue;
|
||||
scene4.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
|
||||
scene4.add(new ActionWait(2));
|
||||
}
|
||||
}
|
||||
|
||||
scene4.add(new ActionWait(10));
|
||||
|
||||
scene4.add(new ActionSetBlock(14, 2 + 2, 8, Blocks.air));
|
||||
scene4.add(new ActionWait(10));
|
||||
|
||||
scene4.add(new ActionSetBlock(14, 2 + 2, 8, ModBlocks.hadron_power));
|
||||
scene4.add(new ActionWait(10));
|
||||
|
||||
|
||||
|
||||
|
||||
// SIXTH SCENE: Reach the Analysis Chamber
|
||||
JarScene scene5 = new JarScene(script);
|
||||
scene5.add(new ActionSetZoom(2, 0));
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene5.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 8 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene5.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 8 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
|
||||
// BEGIN CORNER SEGMENT
|
||||
for(int x = 17; x <= 19; x++) {
|
||||
for(int z = 10; z >= 7; z--) {
|
||||
if(z == 7 && x == 19) continue;
|
||||
scene5.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 20; x++) {
|
||||
for(int z = 10; z >= 6; z--) {
|
||||
if(z == 6 && x >= 19) continue;
|
||||
if(z <= 7 && x == 20) continue;
|
||||
scene5.add(new ActionSetBlock(x, 1, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 20; x++) {
|
||||
for(int z = 10; z >= 6; z--) {
|
||||
if(z == 6 && x >= 19) continue;
|
||||
if(z <= 7 && x == 20) continue;
|
||||
if(z == 9 && x == 18) continue;
|
||||
if(z == 8 && x == 18) continue;
|
||||
if(z == 8 && x == 17) continue;
|
||||
if(z == 10 && x == 18) continue;
|
||||
scene5.add(new ActionSetBlock(x, 2, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 20; x++) {
|
||||
for(int z = 10; z >= 6; z--) {
|
||||
if(z == 6 && x >= 19) continue;
|
||||
if(z <= 7 && x == 20) continue;
|
||||
scene5.add(new ActionSetBlock(x, 3, z, z == 6 || x == 20 || (z == 7 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 19; x++) {
|
||||
for(int z = 10; z >= 7; z--) {
|
||||
if(z == 7 && x == 19) continue;
|
||||
scene5.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
|
||||
scene5.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
// END CORNER SEGMENT
|
||||
|
||||
|
||||
scene5.add(new ActionRotateBy(-90, 0, 5));
|
||||
scene5.add(new ActionOffsetBy(0, 0, -8, 10));
|
||||
scene5.add(new ActionRotateBy(-90, 0, 10));
|
||||
scene5.add(new ActionSetZoom(-1, 10));
|
||||
|
||||
for(int z = 11; z <= 20; z++) {
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium));
|
||||
if(z == 11 || z == 20) scene5.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene5.add(new ActionSetBlock(18 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && z % 3 == 0 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
|
||||
if(z == 11 || z == 20) scene5.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
scene5.add(new ActionWait(z < 13 || z > 18 ? 2 : 1));
|
||||
}
|
||||
|
||||
// SEVENTH SCENE: Actually build the Analysis Chamber
|
||||
JarScene scene6 = new JarScene(script);
|
||||
scene6.add(new ActionSetZoom(1, 0));
|
||||
|
||||
scene6.add(new ActionSetZoom(1, 10));
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), 13, ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), 13, ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int z = 14; z <= 16; z++) {
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 6 ? ModBlocks.hadron_analysis_glass : ModBlocks.hadron_analysis));
|
||||
scene6.add(new ActionWait(2));
|
||||
}
|
||||
}
|
||||
|
||||
scene6.add(new ActionWait(10));
|
||||
|
||||
scene6.add(new ActionCreateActor(16, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, 0, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.13")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene6.add(new ActionWait(100));
|
||||
scene6.add(new ActionRemoveActor(16));
|
||||
scene6.add(new ActionWait(10));
|
||||
|
||||
for(int z = 17; z <= 20; z++) {
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 1.5F), 2 + (int)(Math.sin(r) * 1.5F), z, ModBlocks.hadron_coil_neodymium));
|
||||
if(z == 17 || z == 20) scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene6.add(new ActionSetBlock(12 + (int)(Math.cos(r) * 2.75F), 2 + (int)(Math.sin(r) * 2.75F), z, i == 3 && (z == 18 || z == 20) ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
|
||||
if(z == 17 || z == 20) scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
scene6.add(new ActionSetZoom(-1, 10));
|
||||
|
||||
// BEGIN CORNER SEGMENT
|
||||
for(int x = 17; x <= 19; x++) {
|
||||
for(int z = 23; z >= 21; z--) {
|
||||
if(z == 23 && x == 19) continue;
|
||||
scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 20; x++) {
|
||||
for(int z = 24; z >= 21; z--) {
|
||||
if(z == 24 && x >= 19) continue;
|
||||
if(z >= 23 && x == 20) continue;
|
||||
scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 20; x++) {
|
||||
for(int z = 24; z >= 21; z--) {
|
||||
if(z == 24 && x >= 19) continue;
|
||||
if(z >= 23 && x == 20) continue;
|
||||
if(z == 21 && x == 18) continue;
|
||||
if(z == 22 && x == 18) continue;
|
||||
if(z == 22 && x == 17) continue;
|
||||
if(z == 20 && x == 18) continue;
|
||||
scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 20; x++) {
|
||||
for(int z = 24; z >= 21; z--) {
|
||||
if(z == 24 && x >= 19) continue;
|
||||
if(z >= 23 && x == 20) continue;
|
||||
scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 20 || (z == 23 && x == 19) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 17; x <= 19; x++) {
|
||||
for(int z = 23; z >= 21; z--) {
|
||||
if(z == 23 && x == 19) continue;
|
||||
scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
// END CORNER SEGMENT
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene6.add(new ActionSetBlock(16, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene6.add(new ActionSetBlock(15, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
double r = i * Math.PI / 4;
|
||||
scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 1.5F), 22 + (int)(Math.cos(r) * 1.5F), ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
for(int i = 0; i < 12; i++) {
|
||||
double r = i * Math.PI / 6;
|
||||
scene6.add(new ActionSetBlock(14, 2 + (int)(Math.sin(r) * 2.75F), 22 + (int)(Math.cos(r) * 2.75F), i == 3 ? ModBlocks.hadron_power : ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
|
||||
// BEGIN CORNER SEGMENT
|
||||
for(int x = 11; x <= 13; x++) {
|
||||
for(int z = 23; z >= 21; z--) {
|
||||
if(z == 23 && x == 11) continue;
|
||||
scene6.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 10; x <= 13; x++) {
|
||||
for(int z = 24; z >= 21; z--) {
|
||||
if(z == 24 && x <= 11) continue;
|
||||
if(z >= 23 && x == 10) continue;
|
||||
scene6.add(new ActionSetBlock(x, 1, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 10; x <= 13; x++) {
|
||||
for(int z = 24; z >= 21; z--) {
|
||||
if(z == 24 && x <= 11) continue;
|
||||
if(z >= 23 && x == 10) continue;
|
||||
if(z == 21 && x == 12) continue;
|
||||
if(z == 22 && x == 12) continue;
|
||||
if(z == 22 && x == 13) continue;
|
||||
scene6.add(new ActionSetBlock(x, 2, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 10; x <= 13; x++) {
|
||||
for(int z = 24; z >= 21; z--) {
|
||||
if(z == 24 && x <= 11) continue;
|
||||
if(z >= 23 && x == 10) continue;
|
||||
scene6.add(new ActionSetBlock(x, 3, z, z == 24 || x == 10 || (z == 23 && x == 11) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_neodymium));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 11; x <= 13; x++) {
|
||||
for(int z = 23; z >= 21; z--) {
|
||||
if(z == 23 && x == 11) continue;
|
||||
scene6.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
|
||||
scene6.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
// END CORNER SEGMENT
|
||||
|
||||
scene6.add(new ActionWait(10));
|
||||
|
||||
scene6.add(new ActionCreateActor(17, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -50, new Object[][] {{I18nUtil.resolveKey("cannery.hadron.14")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene6.add(new ActionWait(100));
|
||||
scene6.add(new ActionRemoveActor(17));
|
||||
scene6.add(new ActionWait(10));
|
||||
|
||||
|
||||
|
||||
|
||||
// ADDENDUM SCENE: Schottky diodes
|
||||
|
||||
|
||||
|
||||
// ADDENDUM SCENE: Cooling
|
||||
|
||||
|
||||
script
|
||||
.addScene(scene0)
|
||||
.addScene(scene1)
|
||||
.addScene(scene2)
|
||||
.addScene(scene3)
|
||||
.addScene(scene4)
|
||||
.addScene(scene5)
|
||||
.addScene(scene6);
|
||||
|
||||
return script;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,250 +0,0 @@
|
||||
package com.hbm.wiaj.cannery;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.machine.TileEntityHadronDiode;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
import com.hbm.wiaj.JarScene;
|
||||
import com.hbm.wiaj.JarScript;
|
||||
import com.hbm.wiaj.WorldInAJar;
|
||||
import com.hbm.wiaj.actions.ActionCreateActor;
|
||||
import com.hbm.wiaj.actions.ActionRemoveActor;
|
||||
import com.hbm.wiaj.actions.ActionRotateBy;
|
||||
import com.hbm.wiaj.actions.ActionSetBlock;
|
||||
import com.hbm.wiaj.actions.ActionSetTile;
|
||||
import com.hbm.wiaj.actions.ActionSetZoom;
|
||||
import com.hbm.wiaj.actions.ActionWait;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel;
|
||||
import com.hbm.wiaj.actors.ActorFancyPanel.Orientation;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class CannerySchottky extends CanneryBase {
|
||||
|
||||
@Override
|
||||
public ItemStack getIcon() {
|
||||
return new ItemStack(ModBlocks.hadron_diode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "cannery.schottky";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CanneryBase[] seeAlso() {
|
||||
return new CanneryBase[] {
|
||||
new CanneryHadron()
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public JarScript createScript() {
|
||||
WorldInAJar world = new WorldInAJar(5, 5, 5);
|
||||
JarScript script = new JarScript(world);
|
||||
|
||||
|
||||
// FIRST SCENE: Show and explain the diode
|
||||
JarScene scene0 = new JarScene(script);
|
||||
scene0.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode()));
|
||||
scene0.add(new ActionSetBlock(2, 2, 2, ModBlocks.hadron_diode));
|
||||
|
||||
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.0")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(100));
|
||||
scene0.add(new ActionRemoveActor(1));
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.1")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene0.add(new ActionWait(80));
|
||||
scene0.add(new ActionRemoveActor(1));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.RIGHT)));
|
||||
|
||||
scene0.add(new ActionWait(20));
|
||||
scene0.add(new ActionRemoveActor(2));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; }}));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(3, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.2")}}, 100)
|
||||
.setColors(colorCopper).setOrientation(Orientation.RIGHT)));
|
||||
|
||||
scene0.add(new ActionWait(60));
|
||||
scene0.add(new ActionRemoveActor(3));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
scene0.add(new ActionRemoveActor(4));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.IN; }}));
|
||||
|
||||
scene0.add(new ActionWait(5));
|
||||
|
||||
scene0.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
scene0.add(new ActionRemoveActor(5));
|
||||
|
||||
scene0.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; }}));
|
||||
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
scene0.add(new ActionCreateActor(6, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.3")}}, 100)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene0.add(new ActionWait(60));
|
||||
scene0.add(new ActionRemoveActor(6));
|
||||
scene0.add(new ActionWait(10));
|
||||
|
||||
|
||||
// SECOND SCENE: Add another entrance and exit
|
||||
JarScene scene1 = new JarScene(script);
|
||||
scene1.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene1.add(new ActionRotateBy(180, 0, 10));
|
||||
|
||||
scene1.add(new ActionCreateActor(2, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, -14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.RIGHT)));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
scene1.add(new ActionRemoveActor(2));
|
||||
|
||||
scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; }}));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(4, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
scene1.add(new ActionRemoveActor(4));
|
||||
|
||||
scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.IN; }}));
|
||||
|
||||
scene1.add(new ActionWait(5));
|
||||
|
||||
scene1.add(new ActionCreateActor(5, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 14, 8, new Object[][] {{new ItemStack(ModItems.screwdriver)}}, 0)
|
||||
.setColors(colorCopper).setOrientation(Orientation.LEFT)));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
scene1.add(new ActionRemoveActor(5));
|
||||
|
||||
scene1.add(new ActionSetTile(2, 2, 2, new TileEntityHadronDiode() {{ sides[2] = DiodeConfig.IN; sides[4] = DiodeConfig.OUT; sides[3] = DiodeConfig.IN; sides[5] = DiodeConfig.OUT; }}));
|
||||
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionRotateBy(-180, 0, 10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.4")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.5")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.6")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.7")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
scene1.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.8")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
scene1.add(new ActionWait(100));
|
||||
scene1.add(new ActionRemoveActor(1));
|
||||
scene1.add(new ActionWait(10));
|
||||
|
||||
|
||||
|
||||
// THIRD SCENE: Correctly enclose the diode
|
||||
JarScene scene2 = new JarScene(script);
|
||||
scene2.add(new ActionSetZoom(4, 0));
|
||||
|
||||
scene2.add(new ActionSetZoom(-2, 10));
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
if((x == 0 || x == 4) && (z == 0 || z == 4)) continue;
|
||||
scene2.add(new ActionSetBlock(x, 0, z, ModBlocks.hadron_plating));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
scene2.add(new ActionSetBlock(x, 1, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
if(x == 2 || z == 2) continue;
|
||||
scene2.add(new ActionSetBlock(x, 2, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
scene2.add(new ActionCreateActor(1, new ActorFancyPanel(Minecraft.getMinecraft().fontRenderer, 0, -20, new Object[][] {{I18nUtil.resolveKey("cannery.schottky.9")}}, 200)
|
||||
.setColors(colorCopper).setOrientation(Orientation.BOTTOM)));
|
||||
|
||||
|
||||
scene2.add(new ActionRotateBy(360, 0, 100));
|
||||
scene2.add(new ActionRemoveActor(1));
|
||||
scene2.add(new ActionWait(10));
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
scene2.add(new ActionSetBlock(x, 3, z, (x == 0 || x == 4) && (z == 0 || z == 4) ? ModBlocks.hadron_plating : ModBlocks.hadron_coil_alloy));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
for(int x = 0; x < 5; x++) {
|
||||
for(int z = 0; z < 5; z++) {
|
||||
if((x == 0 || x == 4) && (z == 0 || z == 4)) continue;
|
||||
scene2.add(new ActionSetBlock(x, 4, z, ModBlocks.hadron_plating));
|
||||
scene2.add(new ActionWait(1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
script
|
||||
.addScene(scene0)
|
||||
.addScene(scene1)
|
||||
.addScene(scene2);
|
||||
|
||||
return script;
|
||||
}
|
||||
|
||||
}
|
||||
@ -23,8 +23,6 @@ public class Jars {
|
||||
canneries.put(new ComparableStack(ModBlocks.machine_silex), new CannerySILEX());
|
||||
canneries.put(new ComparableStack(ModBlocks.foundry_channel), new CanneryFoundryChannel());
|
||||
canneries.put(new ComparableStack(ModBlocks.machine_crucible), new CanneryCrucible());
|
||||
canneries.put(new ComparableStack(ModBlocks.hadron_core), new CanneryHadron());
|
||||
canneries.put(new ComparableStack(ModBlocks.hadron_diode), new CannerySchottky());
|
||||
|
||||
canneries.put(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CanneryWillow());
|
||||
canneries.put(new ComparableStack(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.CD0)), new CanneryWillow());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -128,7 +128,7 @@ public class NTMWorldGenerator implements IWorldGenerator {
|
||||
structure = new JigsawPiece("crashed_plane_2", StructureManager.plane2, -8);
|
||||
spawnWeight = 50;
|
||||
}});
|
||||
|
||||
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("desert_shack_1") {{
|
||||
canSpawn = biome -> biome == BiomeGenBase.desert;
|
||||
structure = new JigsawPiece("desert_shack_1", StructureManager.desert_shack_1, -7);
|
||||
@ -188,22 +188,22 @@ public class NTMWorldGenerator implements IWorldGenerator {
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("ruin6") {{
|
||||
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
|
||||
structure = new JigsawPiece("NTMRuinsF", StructureManager.ntmruinsF, -1) {{conformToTerrain = true;}};
|
||||
spawnWeight = 50;
|
||||
spawnWeight = 35;
|
||||
}});
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("ruin7") {{
|
||||
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
|
||||
structure = new JigsawPiece("NTMRuinsG", StructureManager.ntmruinsG, -1) {{conformToTerrain = true;}};
|
||||
spawnWeight = 50;
|
||||
spawnWeight = 35;
|
||||
}});
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("ruin8") {{
|
||||
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
|
||||
structure = new JigsawPiece("NTMRuinsH", StructureManager.ntmruinsH, -1) {{conformToTerrain = true;}};
|
||||
spawnWeight = 50;
|
||||
spawnWeight = 35;
|
||||
}});
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("ruin9") {{
|
||||
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
|
||||
structure = new JigsawPiece("NTMRuinsI", StructureManager.ntmruinsI, -1) {{conformToTerrain = true;}};
|
||||
spawnWeight = 50;
|
||||
spawnWeight = 35;
|
||||
}});
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("ruin10") {{
|
||||
canSpawn = biome -> !invalidBiomes.contains(biome) && biome.canSpawnLightningBolt();
|
||||
@ -215,6 +215,11 @@ public class NTMWorldGenerator implements IWorldGenerator {
|
||||
structure = new JigsawPiece("radio_house", StructureManager.radio_house, -6);
|
||||
spawnWeight = 30;
|
||||
}});
|
||||
NBTStructure.registerStructure(0, new SpawnCondition("factory") {{
|
||||
canSpawn = flatbiomes::contains;
|
||||
structure = new JigsawPiece("factory", StructureManager.factory, -6);
|
||||
spawnWeight = 30;
|
||||
}});
|
||||
|
||||
NBTStructure.registerNullWeight(0, 2, biome -> biome == BiomeGenBase.plains);
|
||||
NBTStructure.registerNullWeight(0, 4, oceanBiomes::contains);
|
||||
|
||||
@ -18,6 +18,7 @@ import com.hbm.world.WorldUtil;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.effect.EntityLightningBolt;
|
||||
import net.minecraft.entity.monster.EntitySkeleton;
|
||||
import net.minecraft.entity.monster.EntityZombie;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
@ -111,8 +112,8 @@ public class LogicBlockActions {
|
||||
}
|
||||
}
|
||||
}
|
||||
world.setBlock(x, y, z, ModBlocks.block_steel);
|
||||
|
||||
world.setBlock(x, y, z, Blocks.air);
|
||||
// world.setBlock(x, y, z, ModBlocks.block_steel); this is useless
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> FODDER_WAVE = (tile) -> {
|
||||
@ -134,6 +135,89 @@ public class LogicBlockActions {
|
||||
}
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETON_GUN_TIER_1 = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
int y = tile.yCoord;
|
||||
int z = tile.zCoord;
|
||||
if (tile.phase == 1) {
|
||||
Vec3NT vec = new Vec3NT(0, 0, 0);
|
||||
EntitySkeleton mob = new EntitySkeleton(world);
|
||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier1, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolRanged, new Random());
|
||||
world.spawnEntityInWorld(mob);
|
||||
world.setBlock(x, y, z, Blocks.air);
|
||||
}
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETON_GUN_TIER_2 = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
int y = tile.yCoord;
|
||||
int z = tile.zCoord;
|
||||
if (tile.phase == 1) {
|
||||
Vec3NT vec = new Vec3NT(0, 0, 0);
|
||||
EntitySkeleton mob = new EntitySkeleton(world);
|
||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier2, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolTierArmor, new Random());
|
||||
world.spawnEntityInWorld(mob);
|
||||
world.setBlock(x, y, z, Blocks.air);
|
||||
}
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETON_GUN_TIER_3 = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
int y = tile.yCoord;
|
||||
int z = tile.zCoord;
|
||||
if (tile.phase == 1) {
|
||||
Vec3NT vec = new Vec3NT(0, 0, 0);
|
||||
EntitySkeleton mob = new EntitySkeleton(world);
|
||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier3, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolAdvRanged, new Random());
|
||||
world.spawnEntityInWorld(mob);
|
||||
world.setBlock(x, y, z, Blocks.air);
|
||||
}
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> ZOMBIE_TIER_1 = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
int y = tile.yCoord;
|
||||
int z = tile.zCoord;
|
||||
if (tile.phase == 1) {
|
||||
Vec3NT vec = new Vec3NT(0, 0, 0);
|
||||
EntityZombie mob = new EntityZombie(world);
|
||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMelee, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolTierArmor, new Random());
|
||||
world.spawnEntityInWorld(mob);
|
||||
world.setBlock(x, y, z, Blocks.air);
|
||||
}
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> ZOMBIE_TIER_2 = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
int y = tile.yCoord;
|
||||
int z = tile.zCoord;
|
||||
if (tile.phase == 1) {
|
||||
Vec3NT vec = new Vec3NT(0, 0, 0);
|
||||
EntityZombie mob = new EntityZombie(world);
|
||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolTierArmor, new Random());
|
||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMelee, new Random());
|
||||
world.spawnEntityInWorld(mob);
|
||||
world.setBlock(x, y, z, Blocks.air);
|
||||
}
|
||||
};
|
||||
|
||||
public static Consumer<LogicBlock.TileEntityLogicBlock> PUZZLE_TEST = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
@ -261,8 +345,14 @@ public class LogicBlockActions {
|
||||
actions.put("PUZZLE_TEST", PUZZLE_TEST);
|
||||
actions.put("MISSILE_STRIKE", MISSILE_STRIKE);
|
||||
actions.put("IRRADIATE_ENTITIES_AOE", RAD_CONTAINMENT_SYSTEM);
|
||||
|
||||
//Mob Block Actions
|
||||
actions.put("SKELETON_GUN_TIER_1", SKELETON_GUN_TIER_1);
|
||||
actions.put("SKELETON_GUN_TIER_2", SKELETON_GUN_TIER_2);
|
||||
actions.put("SKELETON_GUN_TIER_3", SKELETON_GUN_TIER_3);
|
||||
|
||||
actions.put("ZOMBIE_TIER_1", ZOMBIE_TIER_1);
|
||||
actions.put("ZOMBIE_TIER_2", ZOMBIE_TIER_2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -51,6 +51,14 @@ public class LogicBlockConditions {
|
||||
return !world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y - 2, z + 1).expand(5, 5, 5)).isEmpty();
|
||||
};
|
||||
|
||||
public static Function<LogicBlock.TileEntityLogicBlock, Boolean> PLAYER_CUBE_25 = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
int y = tile.yCoord;
|
||||
int z = tile.zCoord;
|
||||
return !world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y - 2, z + 1).expand(25, 25, 25)).isEmpty();
|
||||
};
|
||||
|
||||
public static Function<LogicBlock.TileEntityLogicBlock, Boolean> REDSTONE = (tile) -> {
|
||||
World world = tile.getWorldObj();
|
||||
int x = tile.xCoord;
|
||||
@ -90,6 +98,7 @@ public class LogicBlockConditions {
|
||||
conditions.put("EMPTY", EMPTY);
|
||||
conditions.put("ABERRATOR", ABERRATOR);
|
||||
conditions.put("PLAYER_CUBE_5", PLAYER_CUBE_5);
|
||||
conditions.put("PLAYER_CUBE_25", PLAYER_CUBE_25);
|
||||
conditions.put("REDSTONE", REDSTONE);
|
||||
conditions.put("PUZZLE_TEST", PUZZLE_TEST);
|
||||
}
|
||||
|
||||
11
src/main/resources/assets/hbm/manual/machine/difurnace.json
Normal file
11
src/main/resources/assets/hbm/manual/machine/difurnace.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "Blast Furnace",
|
||||
"icon": ["hbm:tile.machine_difurnace_off", 1, 0],
|
||||
"trigger": [["hbm:tile.machine_difurnace_off"], ["hbm:tile.machine_difurnace_extension"]],
|
||||
"title": {
|
||||
"en_US": "Blast Furnace"
|
||||
},
|
||||
"content": {
|
||||
"en_US": "Simple furnace that can combine two items into one output, usually in the form of an alloy. Needed early on as the first source of [[steel|Steel]], [[red copper|Minecraft Grade Copper]] and [[advanced alloy|Advanced Alloy]]. Does not accept all furnace fuels, only works with hot burning ones like coal, coke or lava buckets. Can be accelerated by placing a blast furnace extension on top, which also makes it more efficient."
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "Rotary Furnace",
|
||||
"icon": ["hbm:tile.machine_rotary_furnace", 1, 0],
|
||||
"trigger": [["hbm:tile.machine_rotary_furnace"]],
|
||||
"title": {
|
||||
"en_US": "Rotary Furnace"
|
||||
},
|
||||
"content": {
|
||||
"en_US": "A type of alloying furnace that can accept multiple item inputs and a fluid and output the result as liquid metal which needs to be cast. Used to make [[weapon steel|Weapon Steel]] and [[saturnite|Saturnite]], and features alternate recipes for [[gunmetal|Gunmetal]] and [[steel|Steel]]. Requires both a solid fuel and [[steam|Steam]] to function, creating [[low-pressure steam|Low-Pressure Steam]] in the process.<br><br>Items can be inserted from the color-coded access points in the back. The input fluid can only be connected to one of the two grey ports on the output side. Steam and low-pressure steam ducts need to be connected to the steam engine on the left. Solid fuel can be inserted through the iron bars at the front. Exhaust smoke can be extracted from the opening at the top, the furnace will emit a smoke plume if not connected to a smoke stack."
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/hbm/structures/factory.nbt
Normal file
BIN
src/main/resources/assets/hbm/structures/factory.nbt
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user