@Override public List<BaseBiome> getBiomes() { List<BaseBiome> list = new ArrayList<>(); for (Biome biome : Biome.REGISTRY) { list.add(new BaseBiome(Biome.getIdForBiome(biome))); } return list; }
@Override public BaseBiome getBiome(BlockVector2 position) { checkNotNull(position); return new BaseBiome(Biome.getIdForBiome(getWorld().getBiomeForCoordsBody(new BlockPos(position.getBlockX(), 0, position.getBlockZ())))); }
public ChunkGeneratorMachines(World worldIn) { this.world = worldIn; voidBiomeArray = new byte[256]; Arrays.fill(voidBiomeArray, (byte) Biome.getIdForBiome(Biomes.VOID)); }
@Override public Chunk generateChunk( final int x, final int z ) { final Chunk chunk = new Chunk( this.world, x, z ); final byte[] biomes = chunk.getBiomeArray(); Biome biome = AppEng.instance().getStorageBiome(); byte biomeId = (byte) Biome.getIdForBiome( biome ); for( int k = 0; k < biomes.length; ++k ) { biomes[k] = biomeId; } AEApi.instance().definitions().blocks().matrixFrame().maybeBlock().ifPresent( block -> this.fillChunk( chunk, block.getDefaultState() ) ); chunk.setModified( false ); if( !chunk.isTerrainPopulated() ) { chunk.setTerrainPopulated( true ); chunk.resetRelightChecks(); } return chunk; }
protected void add(Biome biome, float weight) { if (biome != null && weight != 0.0F) { Float currentValue = (Float)this._matches.get(Biome.getIdForBiome(biome)); if (currentValue != null) { weight += currentValue.floatValue(); } this._matches.put(Biome.getIdForBiome(biome), Float.valueOf(weight)); } }
public float getWeight(Biome biome) { this.compileMatches(); Float value = (Float)this._matches.get(Biome.getIdForBiome(biome)); return value == null ? 0.0F : value.floatValue(); }
@Override public List<Integer> getRawIds() { final List<Integer> list = new ArrayList<>(); final Iterator<Biome> it = Biome.REGISTRY.iterator(); while(it.hasNext()){ final Biome gen = it.next(); if(gen != null) list.add(Biome.getIdForBiome(gen)); } return list; }
@Override public int[] getBiomes(int[] biomeArray, int x, int z, int x_size, int z_size, OutputType outputType) { this.BiomeArray = this.worldChunkManager.getBiomes(this.BiomeArray, x, z, x_size, z_size, true); if (biomeArray == null || biomeArray.length < x_size * z_size) biomeArray = new int[x_size * z_size]; for (int i = 0; i < x_size * z_size; i++) biomeArray[i] = Biome.getIdForBiome(this.BiomeArray[i]); return biomeArray; }
@Override public int[] getBiomesUnZoomed(int[] biomeArray, int x, int z, int x_size, int z_size, OutputType outputType) { this.BiomeArray = this.worldChunkManager.getBiomesForGeneration(this.BiomeArray, x, z, x_size, z_size); if (biomeArray == null || biomeArray.length < x_size * z_size) biomeArray = new int[x_size * z_size]; for (int i = 0; i < x_size * z_size; i++) biomeArray[i] = Biome.getIdForBiome(this.BiomeArray[i]); return biomeArray; }
@Override public Iterator<Biome> getIterator() { final List<Biome> list = new ArrayList<>(); final List<Integer> ints = this.exclusions.getRawIds(); final Iterator<Biome> it = Biome.REGISTRY.iterator(); while(it.hasNext()){ final Biome gen = it.next(); if((gen != null) && !ints.contains(Biome.getIdForBiome(gen))) list.add(gen); } return list.iterator(); }
@Override public List<Integer> getRawIds() { this.checkTypes(); final List<Integer> ints = new ArrayList<>(); for(final BiomeDictionary.Type type:this.types){ final Set<Biome> gens = BiomeDictionary.getBiomes(type); for(final Biome gen:gens) ints.add(Biome.getIdForBiome(gen)); } return ints; }
@Override public void perform() throws Exception { final Iterator<Biome> it = this.pack.getIterator(); while(it.hasNext()){ final int id = Biome.getIdForBiome(it.next()); final Iterator<Biome> it2 = this.replaceWith.getIterator(); if(!it2.hasNext()) throw new IllegalArgumentException("No biome found for replacement!"); GenLayerReplacement.registerReplacement(id, Biome.getIdForBiome(it2.next())); BiomeTweaker.getInstance().onTweak(id); } }
@Override public int getBiome(int x, int z) { return Biome.getIdForBiome(this.worldChunkManager.getBiome(new BlockPos(x, 0, z))); }
@Override public void set(final Object obj, final Integer val) throws IllegalStateException, IllegalArgumentException { if(!(obj instanceof Biome)) throw new IllegalArgumentException("Passed object is not an instance of Biome!"); if(!BiomeEventHandler.getDecorationsPerChunk().containsKey(this.type)) BiomeEventHandler.getDecorationsPerChunk().put(this.type, new TIntIntHashMap()); BiomeEventHandler.getDecorationsPerChunk().get(this.type).put(Biome.getIdForBiome((Biome) obj), val); }
@Override public int[] getInts(int x, int z, int sizeX, int sizeZ) { parent.getInts(x, z, sizeX, sizeZ); int[] ints = IntCache.getIntCache(sizeX * sizeZ); for (int zz = 0; zz < sizeZ; ++zz) for (int xx = 0; xx < sizeX; ++xx) { initChunkSeed(xx + x, zz + z); ints[xx + zz * sizeX] = Biome.getIdForBiome(biomesToGenerate.get(nextInt(biomesToGenerate.size()))); //temp hack for now } return ints; } }
@SubscribeEvent(priority = EventPriority.HIGH) public void onOreGen(final OreGenEvent.GenerateMinable e){ if(BiomeEventHandler.oreTypes.isEmpty()) return; final Biome gen = e.getWorld().getBiome(e.getPos()); if((BiomeEventHandler.oreTypes.containsKey(Biome.getIdForBiome(gen))) && (BiomeEventHandler.oreTypes.get(Biome.getIdForBiome(gen)).contains(e.getType().name()) || BiomeEventHandler.oreTypes.get(Biome.getIdForBiome(gen)).contains("all"))) e.setResult(Result.DENY); }
@Override public LocalBiome getSavedBiome(int x, int z) throws BiomeNotFoundException { return getBiomeById(Biome.getIdForBiome(this.world.getBiome(new BlockPos(x, 0, z)))); }
@Override public Integer get(final Object obj) throws IllegalStateException, IllegalArgumentException { if(!(obj instanceof Biome)) throw new IllegalArgumentException("Passed object is not an instance of Biome!"); if(!BiomeEventHandler.getDecorationsPerChunk().containsKey(this.type)) throw new IllegalStateException("Decoration "+this.type.name()+" has not been set for biome" + ((Biome) obj).getBiomeName() + "!"); final int id = Biome.getIdForBiome((Biome) obj); final TIntIntMap map = BiomeEventHandler.getDecorationsPerChunk().get(this.type); if(!map.containsKey(id)) throw new IllegalStateException("Decoration "+this.type.name()+" has not been set for biome" + ((Biome) obj).getBiomeName() + "!"); return map.get(id); }
@SubscribeEvent(priority = EventPriority.HIGH) public void onBiomeDecorate(final DecorateBiomeEvent.Decorate e){ if(BiomeEventHandler.decorateTypes.isEmpty()) return; final Biome gen = e.getWorld().getBiome(e.getChunkPos().getBlock(0, 0, 0)); if((BiomeEventHandler.decorateTypes.containsKey(Biome.getIdForBiome(gen))) && (BiomeEventHandler.decorateTypes.get(Biome.getIdForBiome(gen)).contains(e.getType().name()) || BiomeEventHandler.decorateTypes.get(Biome.getIdForBiome(gen)).contains("all"))) e.setResult(Result.DENY); }
@Override public Chunk generateChunk(int chunkX, int chunkZ) { ChunkPrimer primer = this.generatePrimer(chunkX, chunkZ); Chunk chunk = new Chunk(this.world, primer, chunkX, chunkZ); Biome[] biomeBuffer = this.provideBiomes(chunkX, chunkZ); byte[] biomeArray = chunk.getBiomeArray(); for (int i = 0; i < biomeBuffer.length; i++) { biomeArray[i] = (byte) Biome.getIdForBiome(biomeBuffer[i]); } chunk.generateSkylightMap(); return chunk; }