Search in sources :

Example 1 with BlockGrating

use of micdoodle8.mods.galacticraft.core.blocks.BlockGrating in project MorePlanets by SteveKunG.

the class BlockFluidLavaBaseMP method displaceIfPossible.

@Override
public boolean displaceIfPossible(World world, BlockPos pos) {
    if (world.isAirBlock(pos)) {
        return true;
    }
    IBlockState state = world.getBlockState(pos);
    Block block = state.getBlock();
    if (block == this) {
        return false;
    }
    if (this.displacements.containsKey(block)) {
        if (this.displacements.get(block)) {
            if (!(block instanceof BlockGrating)) {
                this.triggerMixEffects(world, pos);
                block.dropBlockAsItem(world, pos, state, 0);
            }
            return true;
        }
        return false;
    }
    Material material = state.getMaterial();
    if (material.blocksMovement() || material == Material.PORTAL) {
        return false;
    }
    int density = BlockFluidBase.getDensity(world, pos);
    if (density == Integer.MAX_VALUE) {
        if (!(block instanceof BlockGrating)) {
            this.triggerMixEffects(world, pos);
            block.dropBlockAsItem(world, pos, state, 0);
        }
        return super.displaceIfPossible(world, pos);
    }
    if (this.density > density) {
        return true;
    } else {
        return false;
    }
}
Also used : IBlockState(net.minecraft.block.state.IBlockState) BlockGrating(micdoodle8.mods.galacticraft.core.blocks.BlockGrating) Block(net.minecraft.block.Block) Material(net.minecraft.block.material.Material)

Example 2 with BlockGrating

use of micdoodle8.mods.galacticraft.core.blocks.BlockGrating 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.machineBase4 = new BlockMachine4("machine4");
    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", ConfigManagerCore.allowLiquidGratings ? Material.CARPET : Material.IRON);
    GCBlocks.gratingWater = new BlockGrating("grating1", Material.WATER);
    GCBlocks.gratingLava = new BlockGrating("grating2", Material.LAVA).setLightLevel(1.0F);
    // 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();
}
Also used : EnumBlockBasicMoon(micdoodle8.mods.galacticraft.core.blocks.BlockBasicMoon.EnumBlockBasicMoon)

Example 3 with BlockGrating

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

the class ModelGrating method getQuads.

@Override
public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) {
    if (side == EnumFacing.DOWN && state.getBlock() instanceof BlockGrating) {
        IBlockState baseState = ((IExtendedBlockState) state).getValue(BlockGrating.BASE_STATE);
        if (baseState != null) {
            IBlockAccess blockAccess = BlockGrating.savedBlockAccess;
            BlockPos pos = BlockGrating.savedPos;
            BufferBuilder buffer = TransformerHooks.renderBuilder.get();
            if (buffer != null) {
                if (baseState.getBlock().canRenderInLayer(baseState, MinecraftForgeClient.getRenderLayer()))
                    try {
                        Minecraft.getMinecraft().getBlockRendererDispatcher().renderBlock(baseState, pos, blockAccess, buffer);
                    } catch (Exception ignore) {
                        ignore.printStackTrace();
                    }
            }
        }
    }
    if (MinecraftForgeClient.getRenderLayer() == BlockRenderLayer.CUTOUT) {
        return this.gratingMetal.getQuads(state, side, rand);
    }
    return ImmutableList.of();
}
Also used : BlockGrating(micdoodle8.mods.galacticraft.core.blocks.BlockGrating) IBlockState(net.minecraft.block.state.IBlockState) IExtendedBlockState(net.minecraftforge.common.property.IExtendedBlockState) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) IBlockAccess(net.minecraft.world.IBlockAccess) BlockPos(net.minecraft.util.math.BlockPos)

Example 4 with BlockGrating

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

the class EntityFXLaunchParticle method getCollidingBoundingBoxes.

/**
 * Simplified for performance: no colliding boxes for entities (most/all of the entities will be other launch particles)
 */
public List<AxisAlignedBB> getCollidingBoundingBoxes(AxisAlignedBB bb) {
    List<AxisAlignedBB> list = new LinkedList<>();
    World w = this.world;
    int xs = MathHelper.floor(bb.minX) - 1;
    int xe = MathHelper.ceil(bb.maxX);
    int ys = MathHelper.floor(bb.minY) - 1;
    int ye = MathHelper.ceil(bb.maxY);
    int zs = MathHelper.floor(bb.minZ) - 1;
    int ze = MathHelper.ceil(bb.maxZ);
    BlockPos.MutableBlockPos mutablePos = new BlockPos.MutableBlockPos();
    IBlockState iblockstate1;
    boolean xends, xzmiddle;
    for (int x = xs; x <= xe; ++x) {
        xends = (x == xs || x == xe);
        for (int z = zs; z <= ze; ++z) {
            if (xends) {
                if (z == zs || z == ze)
                    continue;
                xzmiddle = false;
            } else {
                xzmiddle = z > zs && z < ze;
            }
            if (w.isBlockLoaded(mutablePos.setPos(x, 64, z))) {
                for (int y = ys; y <= ye; ++y) {
                    if (y != ys && y != ye || xzmiddle) {
                        mutablePos.setPos(x, y, z);
                        iblockstate1 = w.getBlockState(mutablePos);
                        if (!(iblockstate1.getBlock() instanceof BlockAir) && !(iblockstate1.getBlock() instanceof BlockGrating))
                            iblockstate1.addCollisionBoxToList(w, mutablePos, bb, list, null, false);
                    }
                }
            }
        }
    }
    return list;
}
Also used : AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) BlockAir(net.minecraft.block.BlockAir) IBlockState(net.minecraft.block.state.IBlockState) BlockGrating(micdoodle8.mods.galacticraft.core.blocks.BlockGrating) BlockPos(net.minecraft.util.math.BlockPos) World(net.minecraft.world.World) LinkedList(java.util.LinkedList)

Aggregations

BlockGrating (micdoodle8.mods.galacticraft.core.blocks.BlockGrating)3 IBlockState (net.minecraft.block.state.IBlockState)3 BlockPos (net.minecraft.util.math.BlockPos)2 LinkedList (java.util.LinkedList)1 EnumBlockBasicMoon (micdoodle8.mods.galacticraft.core.blocks.BlockBasicMoon.EnumBlockBasicMoon)1 Block (net.minecraft.block.Block)1 BlockAir (net.minecraft.block.BlockAir)1 Material (net.minecraft.block.material.Material)1 BufferBuilder (net.minecraft.client.renderer.BufferBuilder)1 AxisAlignedBB (net.minecraft.util.math.AxisAlignedBB)1 IBlockAccess (net.minecraft.world.IBlockAccess)1 World (net.minecraft.world.World)1 IExtendedBlockState (net.minecraftforge.common.property.IExtendedBlockState)1