From 12c7acf3f383e824860d42c34586e3c5fa87d7ed Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 21 Nov 2016 14:56:45 +0100 Subject: [PATCH] Added items to engineer house chest --- .../mod/blocks/BlockCompost.java | 2 +- .../gen/VillageComponentEngineerHouse.java | 82 +++++++++++++++++- .../structures/andrew_period_house.nbt | Bin 5530 -> 5543 bytes 3 files changed, 80 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java index d495e43e6..4808ce4d6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockCompost.java @@ -119,7 +119,7 @@ public class BlockCompost extends BlockContainerBase implements IHudDisplay{ else{ if(!StackUtil.isValid(stackPlayer)){ player.setHeldItem(hand, slot.copy()); - compost.setInventorySlotContents(0, null); + compost.setInventorySlotContents(0, StackUtil.getNull()); return true; } else if(ItemUtil.canBeStacked(stackPlayer, slot)){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/gen/VillageComponentEngineerHouse.java b/src/main/java/de/ellpeck/actuallyadditions/mod/gen/VillageComponentEngineerHouse.java index 179fecfa4..c3bd22d5d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/gen/VillageComponentEngineerHouse.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/gen/VillageComponentEngineerHouse.java @@ -10,10 +10,24 @@ package de.ellpeck.actuallyadditions.mod.gen; +import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; +import de.ellpeck.actuallyadditions.api.laser.LaserType; +import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; +import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors; +import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks; +import de.ellpeck.actuallyadditions.mod.data.WorldData; +import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; +import de.ellpeck.actuallyadditions.mod.items.InitItems; +import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; +import de.ellpeck.actuallyadditions.mod.recipe.CrusherRecipeRegistry; +import de.ellpeck.actuallyadditions.mod.tile.*; import de.ellpeck.actuallyadditions.mod.util.ModUtil; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.Mirror; import net.minecraft.util.ResourceLocation; @@ -26,6 +40,8 @@ import net.minecraft.world.gen.structure.StructureVillagePieces; import net.minecraft.world.gen.structure.template.PlacementSettings; import net.minecraft.world.gen.structure.template.Template; import net.minecraft.world.gen.structure.template.TemplateManager; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; import java.util.List; import java.util.Random; @@ -65,7 +81,8 @@ public class VillageComponentEngineerHouse extends StructureVillagePieces.House1 } this.fillWithBlocks(world, sbb, 0, 0, 0, X_SIZE-1, Y_SIZE-1, Z_SIZE-1, Blocks.AIR); - this.spawnActualHouse(world, rand, sbb); + this.spawnActualHouse(world, sbb); + this.fillHouse(world); for(int i = 0; i < X_SIZE; i++){ for(int j = 0; j < Z_SIZE; j++){ @@ -79,11 +96,65 @@ public class VillageComponentEngineerHouse extends StructureVillagePieces.House1 return true; } - public void fillWithBlocks(World world, StructureBoundingBox sbb, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Block block){ + private void fillWithBlocks(World world, StructureBoundingBox sbb, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, Block block){ this.fillWithBlocks(world, sbb, minX, minY, minZ, maxX, maxY, maxZ, block.getDefaultState(), block.getDefaultState(), false); } - public void spawnActualHouse(World world, Random rand, StructureBoundingBox sbb){ + private void fillHouse(World world){ + if(world.rand.nextBoolean()){ + TileEntity compost = this.getTileAtPos(world, 6, 1, 2); + if(compost instanceof TileEntityCompost){ + ((TileEntityCompost)compost).setInventorySlotContents(0, new ItemStack(InitItems.itemFertilizer, 10)); + } + } + + TileEntity ferment = this.getTileAtPos(world, 11, 1, 0); + if(ferment instanceof TileEntityFermentingBarrel){ + TileEntityFermentingBarrel tile = (TileEntityFermentingBarrel)ferment; + tile.canolaTank.setFluid(new FluidStack(InitFluids.fluidCanolaOil, world.rand.nextInt(1500)+200)); + } + + TileEntity coffee = this.getTileAtPos(world, 4, 2, 6); + if(coffee instanceof TileEntityCoffeeMachine){ + TileEntityCoffeeMachine tile = (TileEntityCoffeeMachine)coffee; + tile.tank.setFluid(new FluidStack(FluidRegistry.WATER, world.rand.nextInt(3000)+500)); + tile.coffeeCacheAmount = world.rand.nextInt(150); + tile.storage.setEnergyStored(world.rand.nextInt(tile.storage.getMaxEnergyStored()/2)); + } + + TileEntity press = this.getTileAtPos(world, 2, 1, 5); + if(press instanceof TileEntityCanolaPress){ + TileEntityCanolaPress tile = (TileEntityCanolaPress)press; + tile.storage.setEnergyStored(world.rand.nextInt(tile.storage.getMaxEnergyStored()/3)); + tile.setInventorySlotContents(0, new ItemStack(InitItems.itemMisc, world.rand.nextInt(60)+1, TheMiscItems.CANOLA.ordinal())); + } + + TileEntity crusher = this.getTileAtPos(world, 2, 1, 6); + if(crusher instanceof TileEntityGrinder){ + TileEntityGrinder tile = (TileEntityGrinder)crusher; + tile.storage.setEnergyStored(world.rand.nextInt(tile.storage.getMaxEnergyStored()/2)); + if(world.rand.nextBoolean()){ + tile.setInventorySlotContents(TileEntityGrinder.SLOT_INPUT_1, new ItemStack(InitBlocks.blockMisc, world.rand.nextInt(10)+1, TheMiscBlocks.ORE_QUARTZ.ordinal())); + } + } + + TileEntity coal = this.getTileAtPos(world, 5, 5, 6); + if(coal instanceof TileEntityCoalGenerator){ + ((TileEntityCoalGenerator)coal).setInventorySlotContents(0, new ItemStack(Items.COAL, world.rand.nextInt(25)+3, 1)); + } + + TileEntity firstRelay = this.getTileAtPos(world, 6, 5, 6); + TileEntity secondRelay = this.getTileAtPos(world, 8, 5, 3); + if(firstRelay instanceof TileEntityLaserRelayEnergy && secondRelay instanceof TileEntityLaserRelayEnergy){ + ActuallyAdditionsAPI.connectionHandler.addConnection(firstRelay.getPos(), secondRelay.getPos(), LaserType.ENERGY, world); + } + + BlockPos lamp = new BlockPos(this.getXWithOffset(8, 6), this.getYWithOffset(1), this.getZWithOffset(8, 6)); + int meta = world.rand.nextInt(TheColoredLampColors.values().length); + world.setBlockState(lamp, InitBlocks.blockColoredLamp.getStateFromMeta(meta)); + } + + private void spawnActualHouse(World world, StructureBoundingBox sbb){ TemplateManager manager = world.getSaveHandler().getStructureTemplateManager(); MinecraftServer server = world.getMinecraftServer(); @@ -118,6 +189,11 @@ public class VillageComponentEngineerHouse extends StructureVillagePieces.House1 } } + private TileEntity getTileAtPos(World world, int x, int y, int z){ + BlockPos pos = new BlockPos(this.getXWithOffset(x, z), this.getYWithOffset(y), this.getZWithOffset(x, z)); + return world.getTileEntity(pos); + } + /*@Override protected VillagerProfession chooseForgeProfession(int count, VillagerProfession prof){ return InitVillager.jamProfession; diff --git a/src/main/resources/assets/actuallyadditions/structures/andrew_period_house.nbt b/src/main/resources/assets/actuallyadditions/structures/andrew_period_house.nbt index ef04208266e9a6b9d0aa3e0a502f94cbaa4200da..506f475f210d9de1007f676ce74e7a0150656dea 100644 GIT binary patch literal 5543 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 a8Qi3hazi2K_ng)hq3aTloi#@U1pW&Zca)|8 literal 5530 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 QIg3(7rRcr;Mx>