Search in sources :

Example 1 with Pos3

use of minechem.utils.LocalPosition.Pos3 in project Minechem by iopleke.

the class BlueprintProjectorTileEntity method destroyGhostBlock.

private void destroyGhostBlock(int x, int y, int z, LocalPosition position) {
    Pos3 worldPos = position.getLocalPos(x, y, z);
    Block block = worldObj.getBlock(worldPos.x, worldPos.y, worldPos.z);
    if (block == MinechemBlocksGeneration.ghostBlock) {
        worldObj.setBlockToAir(worldPos.x, worldPos.y, worldPos.z);
    }
}
Also used : Pos3(minechem.utils.LocalPosition.Pos3) BlueprintBlock(minechem.item.blueprint.BlueprintBlock) Block(net.minecraft.block.Block)

Example 2 with Pos3

use of minechem.utils.LocalPosition.Pos3 in project Minechem by iopleke.

the class BlueprintProjectorTileEntity method buildManagerBlock.

private TileEntity buildManagerBlock(LocalPosition position) {
    BlueprintBlock managerBlock = blueprint.getManagerBlock();
    if (managerBlock != null) {
        Pos3 worldPos = position.getLocalPos(blueprint.getManagerPosX(), blueprint.getManagerPosY(), blueprint.getManagerPosZ());
        worldObj.setBlock(worldPos.x, worldPos.y, worldPos.z, managerBlock.block, managerBlock.metadata, 3);
        if (this.blueprint == MinechemBlueprint.fusion && worldObj.getTileEntity(worldPos.x, worldPos.y, worldPos.z) == null) {
            FusionTileEntity fusion = new FusionTileEntity();
            fusion.setWorldObj(this.worldObj);
            fusion.xCoord = worldPos.x;
            fusion.yCoord = worldPos.y;
            fusion.zCoord = worldPos.z;
            fusion.blockType = MinechemBlocksGeneration.fusion;
            worldObj.addTileEntity(fusion);
        }
        return worldObj.getTileEntity(worldPos.x, worldPos.y, worldPos.z);
    } else {
        return null;
    }
}
Also used : BlueprintBlock(minechem.item.blueprint.BlueprintBlock) FusionTileEntity(minechem.tileentity.multiblock.fusion.FusionTileEntity) Pos3(minechem.utils.LocalPosition.Pos3)

Example 3 with Pos3

use of minechem.utils.LocalPosition.Pos3 in project Minechem by iopleke.

the class BlueprintProjectorTileEntity method setBlock.

private void setBlock(int x, int y, int z, LocalPosition position, int structureId, HashMap<Integer, BlueprintBlock> blockLookup, TileEntity managerTileEntity) {
    Pos3 worldPos = position.getLocalPos(x, y, z);
    if (structureId == MinechemBlueprint.wildcard) {
        return;
    }
    if (structureId == air) {
        worldObj.setBlockToAir(worldPos.x, worldPos.y, worldPos.z);
    } else {
        BlueprintBlock blueprintBlock = blockLookup.get(structureId);
        if (blueprintBlock.type == Type.MANAGER) {
            return;
        }
        worldObj.setBlock(worldPos.x, worldPos.y, worldPos.z, blueprintBlock.block, blueprintBlock.metadata, 3);
        if (blueprintBlock.type == Type.PROXY) {
            TileEntity te = worldObj.getTileEntity(worldPos.x, worldPos.y, worldPos.z);
            if (te instanceof TileEntityProxy) {
                TileEntityProxy proxy = (TileEntityProxy) te;
            }
        }
    }
}
Also used : BlueprintBlock(minechem.item.blueprint.BlueprintBlock) GhostBlockTileEntity(minechem.tileentity.multiblock.ghostblock.GhostBlockTileEntity) FusionTileEntity(minechem.tileentity.multiblock.fusion.FusionTileEntity) MultiBlockTileEntity(minechem.tileentity.multiblock.MultiBlockTileEntity) MinechemTileEntity(minechem.tileentity.prefab.MinechemTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) TileEntityProxy(minechem.tileentity.prefab.TileEntityProxy) Pos3(minechem.utils.LocalPosition.Pos3)

Example 4 with Pos3

use of minechem.utils.LocalPosition.Pos3 in project Minechem by iopleke.

the class BlueprintProjectorTileEntity method projectGhostBlock.

private MultiBlockStatusEnum projectGhostBlock(int x, int y, int z, LocalPosition position) {
    Pos3 worldPos = position.getLocalPos(x, y, z);
    Integer structureID = structure[y][x][z];
    Block block = worldObj.getBlock(worldPos.x, worldPos.y, worldPos.z);
    int blockMetadata = worldObj.getBlockMetadata(worldPos.x, worldPos.y, worldPos.z);
    if (structureID == MinechemBlueprint.wildcard) {
        return MultiBlockStatusEnum.CORRECT;
    } else if (structureID == air) {
        if (block.isAir(worldObj, x, y, z)) {
            return MultiBlockStatusEnum.CORRECT;
        } else {
            return MultiBlockStatusEnum.INCORRECT;
        }
    } else {
        HashMap<Integer, BlueprintBlock> lut = blueprint.getBlockLookup();
        BlueprintBlock blueprintBlock = lut.get(structureID);
        if (block.isAir(worldObj, x, y, z)) {
            createGhostBlock(worldPos.x, worldPos.y, worldPos.z, structureID);
            return MultiBlockStatusEnum.INCORRECT;
        } else if (block == blueprintBlock.block && (blockMetadata == blueprintBlock.metadata || blueprintBlock.metadata == -1)) {
            return MultiBlockStatusEnum.CORRECT;
        } else {
            return MultiBlockStatusEnum.INCORRECT;
        }
    }
}
Also used : BlueprintBlock(minechem.item.blueprint.BlueprintBlock) HashMap(java.util.HashMap) Pos3(minechem.utils.LocalPosition.Pos3) BlueprintBlock(minechem.item.blueprint.BlueprintBlock) Block(net.minecraft.block.Block) MinechemBlueprint(minechem.item.blueprint.MinechemBlueprint)

Aggregations

BlueprintBlock (minechem.item.blueprint.BlueprintBlock)4 Pos3 (minechem.utils.LocalPosition.Pos3)4 FusionTileEntity (minechem.tileentity.multiblock.fusion.FusionTileEntity)2 Block (net.minecraft.block.Block)2 HashMap (java.util.HashMap)1 MinechemBlueprint (minechem.item.blueprint.MinechemBlueprint)1 MultiBlockTileEntity (minechem.tileentity.multiblock.MultiBlockTileEntity)1 GhostBlockTileEntity (minechem.tileentity.multiblock.ghostblock.GhostBlockTileEntity)1 MinechemTileEntity (minechem.tileentity.prefab.MinechemTileEntity)1 TileEntityProxy (minechem.tileentity.prefab.TileEntityProxy)1 TileEntity (net.minecraft.tileentity.TileEntity)1