@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int x, int y, int z, int coordBaseMode, int p5) { IStructureTemplate template = null; if(startPiece.inDesert && !desertTemplates.isEmpty()) { template = WeightedTemplate.getTemplate(desertTemplates); } if(template == null) { template = WeightedTemplate.getTemplate(templates); } if(template == null) { return null; } VillageHouse comp = new VillageHouse(template,villagerSpawnLocation, villagerId, x, y, z, coordBaseMode); VillageHouse res = canVillageGoDeeper(comp.getBoundingBox()) && StructureComponent.findIntersecting(pieces, comp.getBoundingBox()) == null ? comp : null; return res; }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { StructureBoundingBox structureboundingbox = StructureBoundingBox.getComponentToAddBoundingBox(p1, p2, p3, 0, 0, 0, 14, 16, 11, facing); return canVillageGoDeeper(structureboundingbox) && StructureComponent.findIntersecting(pieces, structureboundingbox) == null ? new MannCoBuilding(startPiece, p5, random, structureboundingbox, facing) : null; }
public static void addExtraVillageComponents(List<PieceWeight> list, Random random, int i) { List<StructureVillagePieces.PieceWeight> parts = list; for (IVillageCreationHandler handler : instance().villageCreationHandlers.values()) { parts.add(handler.getVillagePieceWeight(random, i)); } }
@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int p1, int p2, int p3, int p4, int p5) { // BiomeGenBase biome = // world.getBiomeGenForCoords(startPiece.getBoundingBox().minX, startPiece.getBoundingBox().minZ); // if (biome != ModBiomes.biomeCityPlains) // return null; return StructureVillagePieces.WoodHut.func_74908_a(startPiece, pieces, random, p1, p2, p3, p4, p5); }
@Override public Village buildComponent(final PieceWeight villagePiece, final Start startPiece, final List<StructureComponent> pieces, final Random random, final int x, final int y, final int z, final EnumFacing facing, final int type) { // This shouldn't happen, but just in case... if (!(villagePiece instanceof SchematicPieceWeight)) return null; // Get our next structure final SchematicPieceWeight pw = (SchematicPieceWeight) villagePiece; final SchematicProperties props = pw.getNextStructure(); // If we don't get properties we may have exceeded // the spawn limit. if (props == null) return null; // Bound it out final Dimensions size = props.schematic.getDimensions(); final StructureBoundingBox _boundingBox = StructureBoundingBox.getComponentToAddBoundingBox(x, y, z, 0, 0, 0, size.width, size.height, size.length, facing); // Check to see if the region is OK, and if so return back // a SchematicStructure surrogate for the schematic. if (canVillageGoDeeper(_boundingBox)) { if (StructureComponent.findIntersecting(pieces, _boundingBox) == null) { ModLog.debug("Village structure [%s] @(%s); mode %d", props.name, _boundingBox, facing); final SchematicStructure struct = new SchematicStructure(startPiece, type, random, _boundingBox, facing); struct.setProperties(props); return struct; } } return null; }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { int maxToSpawn = 0; int totalWeight = 0; pieceWeights = getWeightedSpawnList(random, 0); for (WeightedCreationHandler wch : pieceWeights) { maxToSpawn += wch.weight.villagePiecesLimit; totalWeight += wch.weight.villagePieceWeight; } return new PieceWeight(VillageHouse.class, totalWeight, maxToSpawn); }
@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int x, int y, int z, int coordBaseMode, int p5) { int totalWeight = getTotalWieght(pieceWeights); if(totalWeight <= 0) { return null; } for (int i = 0; i < 5; ++i) { int randomWeight = random.nextInt(totalWeight); Iterator<WeightedCreationHandler> iterator = pieceWeights.iterator(); while (iterator.hasNext()) { WeightedCreationHandler el = iterator.next(); PieceWeight pieceweight = el.weight; randomWeight -= pieceweight.villagePieceWeight; if(randomWeight < 0) { int notUsed = 0; if(!pieceweight.canSpawnMoreVillagePiecesOfType(notUsed) || pieceweight == startPiece.structVillagePieceWeight && pieceWeights.size() > 1) { break; } StructureVillagePieces.Village village = (Village) el.handler.buildComponent(pieceweight, startPiece, pieces, random, x, y, z, coordBaseMode, p5); if(village != null) { ++pieceweight.villagePiecesSpawned; startPiece.structVillagePieceWeight = pieceweight; if(!pieceweight.canSpawnMoreVillagePieces()) { pieceWeights.remove(el); } return village; } } } } return null; }
private int getTotalWieght(List<WeightedCreationHandler> handlers) { boolean result = false; int totalWeight = 0; StructureVillagePieces.PieceWeight pieceweight; for (Iterator<WeightedCreationHandler> iterator = handlers.iterator(); iterator.hasNext(); totalWeight += pieceweight.villagePieceWeight) { pieceweight = iterator.next().weight; if(pieceweight.villagePiecesLimit > 0 && pieceweight.villagePiecesSpawned < pieceweight.villagePiecesLimit) { result = true; } } return result ? totalWeight : -1; }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { final int weight = ModOptions.getVillageStructureWeight(); int count = ModOptions.getVillageStructureCount(); if(count > 1) { count = random.nextInt(count) + 1; } return new PieceWeight(getComponentClass(), weight, count); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new StructureVillagePieces.PieceWeight(MannCoBuilding.class, 15, 1); }
public static Village getVillageComponent(StructureVillagePieces.PieceWeight villagePiece, StructureVillagePieces.Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return instance().villageCreationHandlers.get(villagePiece.villagePieceClass).buildComponent(villagePiece, startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(BaileysShopVillagePiece.class, 30, 1); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return BaileysShopVillagePiece.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceGuardTower2.class, 15, 1); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceGuardTower2.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceBarracks.class, 30, 1); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceBarracks.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceCabin.class, 30, 1); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceCabin.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceGuardTower.class, 15, 3); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceGuardTower.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceShop.class, 30, 2); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceShop.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceTrophy.class, 30, 1); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceTrophy.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(VillagePieceKeep.class, 30, 1); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { return VillagePieceKeep.createPiece(startPiece, pieces, random, p1, p2, p3, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new StructureVillagePieces.PieceWeight(VillageHouseScientist.class, Config.scientistHouseWeight, i); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) { StructureBoundingBox box = StructureBoundingBox.getComponentToAddBoundingBox(p1, p2, p3, 0, -32 + 9, 0, 13, 11, 13, facing); return !Config.genScientistHouse || !(box != null && box.minY > 16) || (StructureComponent.findIntersecting(pieces, box) != null) ? null : new VillageHouseScientist(startPiece, p5, random, box, facing); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new StructureVillagePieces.PieceWeight(ComponentCornField.class, Config.generationWeight, MathHelper.getInt(random, 2 + i, 4 + i * 2)); }
@Override public Village buildComponent(PieceWeight villagePiece, Start startPiece,List pieces, Random random, int x, int y, int z,EnumFacing facing, int p5) { return ComponentCornField.createPiece(startPiece, pieces, random, x, y, z, facing, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { // First number is likelihood of spawning, second is maximum to spawn return new PieceWeight(StructureVillagePieces.WoodHut.class, 20, MathHelper.getRandomIntegerInRange(random, 2 + i, 4 + i)); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { // First number is likelihood of spawning, second is maximum to spawn return new PieceWeight(CatapultTower.class, 25, MathHelper.getRandomIntegerInRange(random, 1 + i, 1 + i)); }
@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int p1, int p2, int p3, int p4, int p5) { return CatapultTower.buildComponent(startPiece, pieces, random, p1, p2, p3, p4, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { // return new PieceWeight(VillageTavern.class, 4, MathHelper.getRandomIntegerInRange(random, 0, 1)); // First number is likelihood of spawning, second is maximum to spawn return new PieceWeight(VillageGuardTower.class, 15, MathHelper.getRandomIntegerInRange(random, 1 + i, 1 + i)); }
@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int p1, int p2, int p3, int p4, int p5) { return VillageGuardTower.buildComponent(startPiece, pieces, random, p1, p2, p3, p4, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { // First number is likelihood of spawning, second is maximum to spawn return new PieceWeight(StructureVillagePieces.House3.class, 20, MathHelper.getRandomIntegerInRange(random, 1 + i, 2 + i)); }
@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int p1, int p2, int p3, int p4, int p5) { return StructureVillagePieces.House3.func_74921_a(startPiece, pieces, random, p1, p2, p3, p4, p5); }
@Override public PieceWeight getVillagePieceWeight(Random random, int i) { return new PieceWeight(ComponentBakery.class, 10, 1); }
@SuppressWarnings("rawtypes") @Override public Object buildComponent(PieceWeight villagePiece, Start startPiece, List pieces, Random random, int x, int y, int z, int coordBaseMode, int p5) { return ComponentBakery.buildComponent(startPiece, pieces, random, x, y, z, coordBaseMode, p5); }