Search in sources :

Example 1 with BlockFluidPipe

use of micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe in project Galacticraft by micdoodle8.

the class GCBlocks method initBlocks.

public static void initBlocks() {
    GCBlocks.breatheableAir = new BlockBreathableAir("breatheable_air");
    GCBlocks.brightAir = new BlockBrightAir("bright_air");
    GCBlocks.brightBreatheableAir = new BlockBrightBreathableAir("bright_breathable_air");
    GCBlocks.brightLamp = new BlockBrightLamp("arclamp");
    GCBlocks.treasureChestTier1 = new BlockTier1TreasureChest("treasure_chest");
    GCBlocks.landingPad = new BlockLandingPad("landing_pad");
    GCBlocks.landingPadFull = new BlockLandingPadFull("landing_pad_full");
    GCBlocks.unlitTorch = new BlockUnlitTorch(false, "unlit_torch");
    GCBlocks.unlitTorchLit = new BlockUnlitTorch(true, "unlit_torch_lit");
    GCBlocks.oxygenDistributor = new BlockOxygenDistributor("distributor");
    GCBlocks.oxygenPipe = new BlockFluidPipe("fluid_pipe", BlockFluidPipe.EnumPipeMode.NORMAL);
    GCBlocks.oxygenPipePull = new BlockFluidPipe("fluid_pipe_pull", BlockFluidPipe.EnumPipeMode.PULL);
    GCBlocks.oxygenCollector = new BlockOxygenCollector("collector");
    GCBlocks.nasaWorkbench = new BlockNasaWorkbench("rocket_workbench");
    GCBlocks.fallenMeteor = new BlockFallenMeteor("fallen_meteor");
    GCBlocks.basicBlock = new BlockBasic("basic_block_core");
    GCBlocks.airLockFrame = new BlockAirLockFrame("air_lock_frame");
    GCBlocks.airLockSeal = new BlockAirLockWall("air_lock_seal");
    // These glass types have to be registered as 6 separate blocks, (a) to allow different coloring of each one and (b) because the Forge MultiLayer custom model does not allow for different textures to be set for different variants
    GCBlocks.spaceGlassVanilla = (BlockSpaceGlass) new BlockSpaceGlass("space_glass_vanilla", GlassType.VANILLA, GlassFrame.PLAIN, null).setHardness(0.3F).setResistance(3F);
    GCBlocks.spaceGlassClear = (BlockSpaceGlass) new BlockSpaceGlass("space_glass_clear", GlassType.CLEAR, GlassFrame.PLAIN, null).setHardness(0.3F).setResistance(3F);
    GCBlocks.spaceGlassStrong = (BlockSpaceGlass) new BlockSpaceGlass("space_glass_strong", GlassType.STRONG, GlassFrame.PLAIN, null).setHardness(4F).setResistance(35F);
    GCBlocks.spaceGlassTinVanilla = (BlockSpaceGlass) new BlockSpaceGlass("space_glass_vanilla_tin", GlassType.VANILLA, GlassFrame.TIN_DECO, GCBlocks.spaceGlassVanilla).setHardness(0.3F).setResistance(4F);
    GCBlocks.spaceGlassTinClear = (BlockSpaceGlass) new BlockSpaceGlass("space_glass_clear_tin", GlassType.CLEAR, GlassFrame.TIN_DECO, GCBlocks.spaceGlassClear).setHardness(0.3F).setResistance(4F);
    GCBlocks.spaceGlassTinStrong = (BlockSpaceGlass) new BlockSpaceGlass("space_glass_strong_tin", GlassType.STRONG, GlassFrame.TIN_DECO, GCBlocks.spaceGlassStrong).setHardness(4F).setResistance(35F);
    GCBlocks.crafting = new BlockCrafting("magnetic_table");
    GCBlocks.refinery = new BlockRefinery("refinery");
    GCBlocks.oxygenCompressor = new BlockOxygenCompressor(false, "oxygen_compressor");
    GCBlocks.fuelLoader = new BlockFuelLoader("fuel_loader");
    GCBlocks.spaceStationBase = new BlockSpaceStationBase("space_station_base");
    GCBlocks.fakeBlock = new BlockMulti("block_multi");
    GCBlocks.oxygenSealer = new BlockOxygenSealer("sealer");
    GCBlocks.sealableBlock = new BlockEnclosed("enclosed");
    GCBlocks.oxygenDetector = new BlockOxygenDetector("oxygen_detector");
    GCBlocks.cargoLoader = new BlockCargoLoader("cargo");
    GCBlocks.parachest = new BlockParaChest("parachest");
    GCBlocks.solarPanel = new BlockSolar("solar");
    GCBlocks.radioTelescope = new BlockDish("dishbase");
    GCBlocks.machineBase = new BlockMachine("machine");
    GCBlocks.machineBase2 = new BlockMachine2("machine2");
    GCBlocks.machineBase3 = new BlockMachine3("machine3");
    GCBlocks.machineTiered = new BlockMachineTiered("machine_tiered");
    GCBlocks.aluminumWire = new BlockAluminumWire("aluminum_wire");
    GCBlocks.panelLighting = new BlockPanelLighting("panel_lighting");
    GCBlocks.glowstoneTorch = new BlockGlowstoneTorch("glowstone_torch");
    GCBlocks.blockMoon = new BlockBasicMoon("basic_block_moon");
    GCBlocks.cheeseBlock = new BlockCheese("cheese");
    GCBlocks.spinThruster = new BlockSpinThruster("spin_thruster");
    GCBlocks.screen = new BlockScreen("view_screen");
    GCBlocks.telemetry = new BlockTelemetry("telemetry");
    GCBlocks.fluidTank = new BlockFluidTank("fluid_tank");
    GCBlocks.bossSpawner = new BlockBossSpawner("boss_spawner");
    GCBlocks.slabGCHalf = new BlockSlabGC("slab_gc_half", Material.rock);
    GCBlocks.slabGCDouble = new BlockDoubleSlabGC("slab_gc_double", Material.rock);
    GCBlocks.tinStairs1 = new BlockStairsGC("tin_stairs_1", basicBlock.getDefaultState().withProperty(BlockBasic.BASIC_TYPE, BlockBasic.EnumBlockBasic.ALUMINUM_DECORATION_BLOCK_0)).setHardness(2.0F);
    GCBlocks.tinStairs2 = new BlockStairsGC("tin_stairs_2", basicBlock.getDefaultState().withProperty(BlockBasic.BASIC_TYPE, BlockBasic.EnumBlockBasic.ALUMINUM_DECORATION_BLOCK_1)).setHardness(2.0F);
    GCBlocks.moonStoneStairs = new BlockStairsGC("moon_stairs_stone", blockMoon.getDefaultState().withProperty(BlockBasicMoon.BASIC_TYPE_MOON, BlockBasicMoon.EnumBlockBasicMoon.MOON_STONE)).setHardness(1.5F);
    GCBlocks.moonBricksStairs = new BlockStairsGC("moon_stairs_brick", blockMoon.getDefaultState().withProperty(BlockBasicMoon.BASIC_TYPE_MOON, BlockBasicMoon.EnumBlockBasicMoon.MOON_DUNGEON_BRICK)).setHardness(4.0F);
    GCBlocks.wallGC = new BlockWallGC("wall_gc");
    GCBlocks.concealedRedstone = new BlockConcealedRedstone("concealed_redstone");
    GCBlocks.concealedRepeater_Powered = new BlockConcealedRepeater("concealed_repeater_pow", true);
    GCBlocks.concealedRepeater_Unpowered = new BlockConcealedRepeater("concealed_repeater", false);
    GCBlocks.concealedDetector = new BlockConcealedDetector("concealed_detector");
    GCBlocks.platform = new BlockPlatform("platform");
    GCBlocks.emergencyBox = new BlockEmergencyBox("emergency_box");
    GCBlocks.grating = new BlockGrating("grating");
    // Hide certain items from NEI
    GCBlocks.hiddenBlocks.add(GCBlocks.airLockSeal);
    GCBlocks.hiddenBlocks.add(GCBlocks.oxygenPipePull);
    GCBlocks.hiddenBlocks.add(GCBlocks.unlitTorch);
    GCBlocks.hiddenBlocks.add(GCBlocks.unlitTorchLit);
    GCBlocks.hiddenBlocks.add(GCBlocks.landingPadFull);
    GCBlocks.hiddenBlocks.add(GCBlocks.spaceStationBase);
    GCBlocks.hiddenBlocks.add(GCBlocks.bossSpawner);
    GCBlocks.hiddenBlocks.add(GCBlocks.slabGCDouble);
    GCBlocks.hiddenBlocks.add(GCBlocks.concealedRepeater_Powered);
    // Register blocks before register ores, so that the ItemStack picks up the correct item
    GCBlocks.registerBlocks();
    GCBlocks.setHarvestLevels();
    // Complete registration of various types of torches
    BlockUnlitTorch.register((BlockUnlitTorch) GCBlocks.unlitTorch, (BlockUnlitTorch) GCBlocks.unlitTorchLit, Blocks.torch);
    OreDictionary.registerOre("oreCopper", new ItemStack(GCBlocks.basicBlock, 1, 5));
    OreDictionary.registerOre("oreCopper", new ItemStack(GCBlocks.blockMoon, 1, 0));
    OreDictionary.registerOre("oreTin", new ItemStack(GCBlocks.basicBlock, 1, 6));
    OreDictionary.registerOre("oreTin", new ItemStack(GCBlocks.blockMoon, 1, 1));
    OreDictionary.registerOre("oreAluminum", new ItemStack(GCBlocks.basicBlock, 1, 7));
    OreDictionary.registerOre("oreAluminium", new ItemStack(GCBlocks.basicBlock, 1, 7));
    OreDictionary.registerOre("oreNaturalAluminum", new ItemStack(GCBlocks.basicBlock, 1, 7));
    OreDictionary.registerOre("oreSilicon", new ItemStack(GCBlocks.basicBlock, 1, 8));
    OreDictionary.registerOre("oreCheese", new ItemStack(GCBlocks.blockMoon, 1, 2));
    OreDictionary.registerOre("blockCopper", new ItemStack(GCBlocks.basicBlock, 1, 9));
    OreDictionary.registerOre("blockTin", new ItemStack(GCBlocks.basicBlock, 1, 10));
    OreDictionary.registerOre("blockAluminum", new ItemStack(GCBlocks.basicBlock, 1, 11));
    OreDictionary.registerOre("blockAluminium", new ItemStack(GCBlocks.basicBlock, 1, 11));
    OreDictionary.registerOre("blockSilicon", new ItemStack(GCBlocks.basicBlock, 1, 13));
    OreDictionary.registerOre("turfMoon", new ItemStack(GCBlocks.blockMoon, 1, EnumBlockBasicMoon.MOON_TURF.getMeta()));
}
Also used : EnumBlockBasicMoon(micdoodle8.mods.galacticraft.core.blocks.BlockBasicMoon.EnumBlockBasicMoon) ItemStack(net.minecraft.item.ItemStack)

Example 2 with BlockFluidPipe

use of micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe in project Galacticraft by micdoodle8.

the class GCNEIHighlightHandler method handleTextData.

@Override
public List<String> handleTextData(ItemStack stack, World world, EntityPlayer player, MovingObjectPosition mop, List<String> currenttip, ItemInfo.Layout layout) {
    if (stack != null) {
        if (stack.getItem() == Item.getItemFromBlock(GCBlocks.fluidTank)) {
            if (layout == ItemInfo.Layout.BODY) {
                TileEntity tile = world.getTileEntity(mop.getBlockPos());
                if (tile instanceof TileEntityFluidTank) {
                    TileEntityFluidTank tank = (TileEntityFluidTank) tile;
                    FluidTankInfo[] infos = tank.getTankInfo(EnumFacing.DOWN);
                    if (infos.length == 1) {
                        FluidTankInfo info = infos[0];
                        currenttip.add(info.fluid != null ? info.fluid.getLocalizedName() : "Empty");
                        currenttip.add((info.fluid != null ? info.fluid.amount : 0) + " / " + info.capacity);
                    }
                }
            }
        } else if (stack.getItem() == Item.getItemFromBlock(GCBlocks.oxygenPipe) || stack.getItem() == Item.getItemFromBlock(GCBlocks.oxygenPipePull)) {
            if (layout == ItemInfo.Layout.BODY) {
                TileEntity tile = world.getTileEntity(mop.getBlockPos());
                if (tile instanceof TileEntityFluidPipe) {
                    TileEntityFluidPipe pipe = (TileEntityFluidPipe) tile;
                    currenttip.add(((BlockFluidPipe) pipe.getBlockType()).getMode().toString());
                    if (pipe.hasNetwork()) {
                        FluidNetwork network = ((FluidNetwork) pipe.getNetwork());
                        currenttip.add("Network: " + (network.buffer != null ? network.buffer.amount : 0) + " / " + network.getCapacity());
                    } else {
                        currenttip.add("Pipe: " + (pipe.getBuffer() != null ? pipe.getBuffer().amount + " / " + pipe.buffer.getCapacity() : "None"));
                    }
                }
            }
        }
    }
    return currenttip;
}
Also used : TileEntity(net.minecraft.tileentity.TileEntity) FluidTankInfo(net.minecraftforge.fluids.FluidTankInfo) FluidNetwork(micdoodle8.mods.galacticraft.core.fluid.FluidNetwork) TileEntityFluidTank(micdoodle8.mods.galacticraft.core.tile.TileEntityFluidTank) TileEntityFluidPipe(micdoodle8.mods.galacticraft.core.tile.TileEntityFluidPipe)

Example 3 with BlockFluidPipe

use of micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe in project Galacticraft by micdoodle8.

the class TileEntityFluidTransmitter method update.

@Override
public void update() {
    if (!this.worldObj.isRemote) {
        if (!this.validated) {
            TickHandlerServer.oxygenTransmitterUpdates.add(this);
            this.validated = true;
        }
        Block blockType = this.getBlockType();
        if (blockType instanceof BlockFluidPipe && ((BlockFluidPipe) blockType).getMode() == BlockFluidPipe.EnumPipeMode.PULL) {
            TileEntity[] tiles = OxygenUtil.getAdjacentFluidConnections(this);
            for (EnumFacing side : EnumFacing.VALUES) {
                TileEntity sideTile = tiles[side.ordinal()];
                if (sideTile != null && !(sideTile instanceof IBufferTransmitter) && sideTile instanceof IFluidHandler) {
                    IFluidHandler handler = (IFluidHandler) sideTile;
                    FluidStack received = handler.drain(side.getOpposite(), this.pullAmount, false);
                    if (received != null && received.amount != 0) {
                        handler.drain(side.getOpposite(), this.fill(EnumFacing.DOWN, received, true), true);
                    }
                }
            }
        }
    }
    super.update();
}
Also used : TileEntity(net.minecraft.tileentity.TileEntity) FluidStack(net.minecraftforge.fluids.FluidStack) EnumFacing(net.minecraft.util.EnumFacing) IBufferTransmitter(micdoodle8.mods.galacticraft.api.transmission.tile.IBufferTransmitter) Block(net.minecraft.block.Block) BlockFluidPipe(micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe) IFluidHandler(net.minecraftforge.fluids.IFluidHandler)

Example 4 with BlockFluidPipe

use of micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe in project Galacticraft by micdoodle8.

the class TileEntityFluidPipe method switchType.

public boolean switchType() {
    if (this.ticks < 10) {
        return false;
    }
    Block block;
    Block currentType = this.getBlockType();
    if (!(currentType instanceof BlockFluidPipe)) {
        return false;
    }
    switch(((BlockFluidPipe) currentType).getMode()) {
        case NORMAL:
            block = GCBlocks.oxygenPipePull;
            break;
        default:
            block = GCBlocks.oxygenPipe;
            break;
    }
    BlockFluidPipe.ignoreDrop = true;
    this.worldObj.setBlockState(pos, block.getStateFromMeta(currentType.getMetaFromState(this.worldObj.getBlockState(pos))));
    BlockFluidPipe.ignoreDrop = false;
    if (this.hasNetwork()) {
        this.refresh();
        this.getNetwork().refresh();
    }
    return true;
}
Also used : Block(net.minecraft.block.Block) BlockFluidPipe(micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe)

Aggregations

BlockFluidPipe (micdoodle8.mods.galacticraft.core.blocks.BlockFluidPipe)2 Block (net.minecraft.block.Block)2 TileEntity (net.minecraft.tileentity.TileEntity)2 IBufferTransmitter (micdoodle8.mods.galacticraft.api.transmission.tile.IBufferTransmitter)1 EnumBlockBasicMoon (micdoodle8.mods.galacticraft.core.blocks.BlockBasicMoon.EnumBlockBasicMoon)1 FluidNetwork (micdoodle8.mods.galacticraft.core.fluid.FluidNetwork)1 TileEntityFluidPipe (micdoodle8.mods.galacticraft.core.tile.TileEntityFluidPipe)1 TileEntityFluidTank (micdoodle8.mods.galacticraft.core.tile.TileEntityFluidTank)1 ItemStack (net.minecraft.item.ItemStack)1 EnumFacing (net.minecraft.util.EnumFacing)1 FluidStack (net.minecraftforge.fluids.FluidStack)1 FluidTankInfo (net.minecraftforge.fluids.FluidTankInfo)1 IFluidHandler (net.minecraftforge.fluids.IFluidHandler)1