THE RENUMBERING (yet to be fully tested)

This commit is contained in:
Ellpeck 2019-01-29 11:46:38 +01:00
parent 70d7671506
commit 6fc0ef8a43
32 changed files with 114 additions and 114 deletions

View file

@ -31,7 +31,7 @@ public final class ModConfig {
public int fieldCreatorRange = 10; public int fieldCreatorRange = 10;
@Comment("The Aura to RF ratio used by the RF converter, read as aura*ratio = rf") @Comment("The Aura to RF ratio used by the RF converter, read as aura*ratio = rf")
public float auraToRFRatio = 5; public float auraToRFRatio = 0.05F;
} }
public static class Features { public static class Features {

View file

@ -23,7 +23,7 @@ public interface IAuraChunk extends ICapabilityProvider, INBTSerializable<NBTTag
/** /**
* The default amount of Aura that a chunk has stored * The default amount of Aura that a chunk has stored
*/ */
int DEFAULT_AURA = 10000; int DEFAULT_AURA = 1000000;
/** /**
* This method is used to get information about the Aura in any given chunk. * This method is used to get information about the Aura in any given chunk.

View file

@ -67,8 +67,8 @@ public class BlockAnimalGenerator extends BlockContainerImpl implements IVisuali
float amountMod = child ? 0.667F : 1; float amountMod = child ? 0.667F : 1;
int timeAlive = data.getInteger(NaturesAura.MOD_ID + ":time_alive"); int timeAlive = data.getInteger(NaturesAura.MOD_ID + ":time_alive");
int time = Math.min(MathHelper.floor((timeAlive - 15000) / 500F * timeMod), 300); int time = Math.min(MathHelper.floor((timeAlive - 15000) / 5F * timeMod), 30000);
int amount = Math.min(MathHelper.floor((timeAlive - 8000) / 250F * amountMod), 150); int amount = Math.min(MathHelper.floor((timeAlive - 8000) / 2.5F * amountMod), 15000);
if (time <= 0 || amount <= 0) if (time <= 0 || amount <= 0)
return false; return false;
gen.setGenerationValues(time, amount); gen.setGenerationValues(time, amount);

View file

@ -59,7 +59,7 @@ public class BlockSpawnLamp extends BlockContainerImpl implements IVisualizable
EntityLiving entity = (EntityLiving) event.getEntityLiving(); EntityLiving entity = (EntityLiving) event.getEntityLiving();
if (entity.getCanSpawnHere() && entity.isNotColliding()) { if (entity.getCanSpawnHere() && entity.isNotColliding()) {
BlockPos spot = IAuraChunk.getHighestSpot(world, lampPos, 32, lampPos); BlockPos spot = IAuraChunk.getHighestSpot(world, lampPos, 32, lampPos);
IAuraChunk.getAuraChunk(world, spot).drainAura(spot, 2); IAuraChunk.getAuraChunk(world, spot).drainAura(spot, 200);
PacketHandler.sendToAllAround(world, lampPos, 32, PacketHandler.sendToAllAround(world, lampPos, 32,
new PacketParticles(lampPos.getX(), lampPos.getY(), lampPos.getZ(), 15)); new PacketParticles(lampPos.getX(), lampPos.getY(), lampPos.getZ(), 15));

View file

@ -8,7 +8,7 @@ import net.minecraft.util.EnumFacing;
public class TileEntityAncientLeaves extends TileEntityImpl { public class TileEntityAncientLeaves extends TileEntityImpl {
private final NaturalAuraContainer container = new NaturalAuraContainer(NaturesAuraAPI.TYPE_OVERWORLD, 20, 5) { private final NaturalAuraContainer container = new NaturalAuraContainer(NaturesAuraAPI.TYPE_OVERWORLD, 2000, 500) {
@Override @Override
public int getAuraColor() { public int getAuraColor() {
return 0xc46df9; return 0xc46df9;

View file

@ -14,7 +14,7 @@ import net.minecraft.util.math.BlockPos;
public class TileEntityEndFlower extends TileEntityImpl implements ITickable { public class TileEntityEndFlower extends TileEntityImpl implements ITickable {
private final BasicAuraContainer container = new BasicAuraContainer(null, 5000) { private final BasicAuraContainer container = new BasicAuraContainer(null, 500000) {
{ {
this.aura = this.maxAura; this.aura = this.maxAura;
} }
@ -51,7 +51,7 @@ public class TileEntityEndFlower extends TileEntityImpl implements ITickable {
if (amount < IAuraChunk.DEFAULT_AURA) if (amount < IAuraChunk.DEFAULT_AURA)
this.isDrainMode = true; this.isDrainMode = true;
} else { } else {
int toDrain = Math.min(50, this.container.getStoredAura()); int toDrain = Math.min(5000, this.container.getStoredAura());
this.container.drainAura(toDrain, false); this.container.drainAura(toDrain, false);
while (toDrain > 0) { while (toDrain > 0) {

View file

@ -81,11 +81,11 @@ public class TileEntityFieldCreator extends TileEntityImpl implements ITickable
creator.sendToClients(); creator.sendToClients();
} }
chunk.drainAura(spot, 3); chunk.drainAura(spot, 300);
this.sendParticles(); this.sendParticles();
} else { } else {
if (this.world.getTotalWorldTime() % 40 == 0) if (this.world.getTotalWorldTime() % 40 == 0)
chunk.drainAura(spot, 1); chunk.drainAura(spot, 100);
Vec3d dist = new Vec3d( Vec3d dist = new Vec3d(
this.pos.getX() - connectedPos.getX(), this.pos.getX() - connectedPos.getX(),
@ -120,7 +120,7 @@ public class TileEntityFieldCreator extends TileEntityImpl implements ITickable
for (ItemStack stack : drops) for (ItemStack stack : drops)
Block.spawnAsEntity(this.world, pos, stack); Block.spawnAsEntity(this.world, pos, stack);
chunk.drainAura(spot, 3); chunk.drainAura(spot, 300);
this.sendParticles(); this.sendParticles();
} }
} }

View file

@ -50,8 +50,8 @@ public class TileEntityFlowerGenerator extends TileEntityImpl implements ITickab
IBlockState state = this.world.getBlockState(pos); IBlockState state = this.world.getBlockState(pos);
MutableInt curr = this.consumedRecently.computeIfAbsent(state, s -> new MutableInt()); MutableInt curr = this.consumedRecently.computeIfAbsent(state, s -> new MutableInt());
int addAmount = 250; int addAmount = 25000;
int toAdd = Math.max(0, addAmount - curr.getValue()); int toAdd = Math.max(0, addAmount - curr.getValue() * 100);
if (toAdd > 0) { if (toAdd > 0) {
if (NaturesAuraAPI.TYPE_OVERWORLD.isPresentInWorld(this.world)) { if (NaturesAuraAPI.TYPE_OVERWORLD.isPresentInWorld(this.world)) {
int remain = toAdd; int remain = toAdd;

View file

@ -41,7 +41,7 @@ public class TileEntityFurnaceHeater extends TileEntityImpl implements ITickable
BlockPos spot = IAuraChunk.getHighestSpot(this.world, this.pos, 20, this.pos); BlockPos spot = IAuraChunk.getHighestSpot(this.world, this.pos, 20, this.pos);
IAuraChunk chunk = IAuraChunk.getAuraChunk(this.world, spot); IAuraChunk chunk = IAuraChunk.getAuraChunk(this.world, spot);
chunk.drainAura(spot, MathHelper.ceil((200 - time) / 6F)); chunk.drainAura(spot, MathHelper.ceil((200 - time) * 16.6F));
did = true; did = true;
if (this.world.getTotalWorldTime() % 15 == 0) { if (this.world.getTotalWorldTime() % 15 == 0) {

View file

@ -58,7 +58,7 @@ public class TileEntityHopperUpgrade extends TileEntityImpl implements ITickable
item.setDead(); item.setDead();
BlockPos spot = IAuraChunk.getHighestSpot(this.world, this.pos, 25, this.pos); BlockPos spot = IAuraChunk.getHighestSpot(this.world, this.pos, 25, this.pos);
IAuraChunk.getAuraChunk(this.world, spot).drainAura(spot, 5); IAuraChunk.getAuraChunk(this.world, spot).drainAura(spot, 500);
PacketHandler.sendToAllAround(this.world, this.pos, 32, PacketHandler.sendToAllAround(this.world, this.pos, 32,
new PacketParticles((float) item.posX, (float) item.posY, (float) item.posZ, 10)); new PacketParticles((float) item.posX, (float) item.posY, (float) item.posZ, 10));

View file

@ -53,7 +53,7 @@ public class TileEntityNatureAltar extends TileEntityImpl implements ITickable {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public int bobTimer; public int bobTimer;
private final BasicAuraContainer container = new BasicAuraContainer(NaturesAuraAPI.TYPE_OVERWORLD, 5000); private final BasicAuraContainer container = new BasicAuraContainer(NaturesAuraAPI.TYPE_OVERWORLD, 500000);
public boolean structureFine; public boolean structureFine;
private AltarRecipe currentRecipe; private AltarRecipe currentRecipe;
@ -75,7 +75,7 @@ public class TileEntityNatureAltar extends TileEntityImpl implements ITickable {
} }
if (this.structureFine) { if (this.structureFine) {
int space = this.container.storeAura(3, true); int space = this.container.storeAura(300, true);
if (space > 0 && this.container.isAcceptableType(IAuraType.forWorld(this.world))) { if (space > 0 && this.container.isAcceptableType(IAuraType.forWorld(this.world))) {
int toStore = Math.min(IAuraChunk.getAuraInArea(this.world, this.pos, 20), space); int toStore = Math.min(IAuraChunk.getAuraInArea(this.world, this.pos, 20), space);
if (toStore > 0) { if (toStore > 0) {

View file

@ -20,7 +20,7 @@ public class TileEntityOakGenerator extends TileEntityImpl implements ITickable
while (!this.scheduledBigTrees.isEmpty()) { while (!this.scheduledBigTrees.isEmpty()) {
BlockPos pos = this.scheduledBigTrees.remove(); BlockPos pos = this.scheduledBigTrees.remove();
if (this.world.getBlockState(pos).getBlock() instanceof BlockLog) { if (this.world.getBlockState(pos).getBlock() instanceof BlockLog) {
int toAdd = 1000; int toAdd = 100000;
while (toAdd > 0) { while (toAdd > 0) {
BlockPos spot = IAuraChunk.getLowestSpot(this.world, this.pos, 25, this.pos); BlockPos spot = IAuraChunk.getLowestSpot(this.world, this.pos, 25, this.pos);
toAdd -= IAuraChunk.getAuraChunk(this.world, spot).storeAura(spot, toAdd); toAdd -= IAuraChunk.getAuraChunk(this.world, spot).storeAura(spot, toAdd);

View file

@ -73,7 +73,7 @@ public class TileEntityPlacer extends TileEntityImpl implements ITickable {
handler.extractItem(i, 1, false); handler.extractItem(i, 1, false);
BlockPos spot = IAuraChunk.getHighestSpot(this.world, this.pos, 10, this.pos); BlockPos spot = IAuraChunk.getHighestSpot(this.world, this.pos, 10, this.pos);
IAuraChunk.getAuraChunk(this.world, spot).drainAura(spot, 10); IAuraChunk.getAuraChunk(this.world, spot).drainAura(spot, 1000);
PacketHandler.sendToAllAround(this.world, this.pos, 32, new PacketParticles(pos.getX(), pos.getY(), pos.getZ(), 9)); PacketHandler.sendToAllAround(this.world, this.pos, 32, new PacketParticles(pos.getX(), pos.getY(), pos.getZ(), 9));

View file

@ -40,7 +40,7 @@ public class TileEntityPotionGenerator extends TileEntityImpl implements ITickab
continue; continue;
} }
int toAdd = ((effect.getAmplifier() * 7 + 1) * (effect.getDuration() / 25)); int toAdd = ((effect.getAmplifier() * 7 + 1) * (effect.getDuration() / 25)) * 100;
while (toAdd > 0) { while (toAdd > 0) {
BlockPos spot = IAuraChunk.getLowestSpot(this.world, this.pos, 30, this.pos); BlockPos spot = IAuraChunk.getLowestSpot(this.world, this.pos, 30, this.pos);
toAdd -= IAuraChunk.getAuraChunk(this.world, spot).storeAura(spot, toAdd); toAdd -= IAuraChunk.getAuraChunk(this.world, spot).storeAura(spot, toAdd);

View file

@ -71,7 +71,7 @@ public class TileEntityRFConverter extends TileEntityImpl implements ITickable {
int aura = IAuraChunk.getAuraInArea(this.world, this.pos, 45); int aura = IAuraChunk.getAuraInArea(this.world, this.pos, 45);
if (aura <= IAuraChunk.DEFAULT_AURA) if (aura <= IAuraChunk.DEFAULT_AURA)
return; return;
int amountToGen = Math.min(Math.min(10000, aura / 10), emptyPart); int amountToGen = Math.min(Math.min(1000, aura / 1000), emptyPart);
int amountToUse = MathHelper.ceil(amountToGen / ModConfig.general.auraToRFRatio); int amountToUse = MathHelper.ceil(amountToGen / ModConfig.general.auraToRFRatio);
this.storage.setEnergy(this.storage.getEnergyStored() + amountToGen); this.storage.setEnergy(this.storage.getEnergyStored() + amountToGen);

View file

@ -33,12 +33,12 @@ public class AnimalEffect implements IDrainSpotEffect {
if (spot <= 0) if (spot <= 0)
return; return;
int aura = IAuraChunk.getAuraInArea(world, pos, 30); int aura = IAuraChunk.getAuraInArea(world, pos, 30);
if (aura < 15000) if (aura < 1500000)
return; return;
int chance = Math.min(50, Math.abs(aura) / 5000); int chance = Math.min(50, Math.abs(aura) / 500000);
if (chance <= 0) if (chance <= 0)
return; return;
int dist = MathHelper.clamp(Math.abs(aura) / 1500, 5, 35); int dist = MathHelper.clamp(Math.abs(aura) / 150000, 5, 35);
AxisAlignedBB bb = new AxisAlignedBB(pos).grow(dist); AxisAlignedBB bb = new AxisAlignedBB(pos).grow(dist);
List<EntityAnimal> animals = world.getEntitiesWithinAABB(EntityAnimal.class, bb); List<EntityAnimal> animals = world.getEntitiesWithinAABB(EntityAnimal.class, bb);
@ -74,7 +74,7 @@ public class AnimalEffect implements IDrainSpotEffect {
world.spawnEntity(chicken); world.spawnEntity(chicken);
BlockPos closestSpot = IAuraChunk.getHighestSpot(world, item.getPosition(), 35, pos); BlockPos closestSpot = IAuraChunk.getHighestSpot(world, item.getPosition(), 35, pos);
IAuraChunk.getAuraChunk(world, closestSpot).drainAura(closestSpot, 20); IAuraChunk.getAuraChunk(world, closestSpot).drainAura(closestSpot, 2000);
} }
} }
@ -100,7 +100,7 @@ public class AnimalEffect implements IDrainSpotEffect {
this.setInLove(second); this.setInLove(second);
BlockPos closestSpot = IAuraChunk.getHighestSpot(world, first.getPosition(), 35, pos); BlockPos closestSpot = IAuraChunk.getHighestSpot(world, first.getPosition(), 35, pos);
IAuraChunk.getAuraChunk(world, closestSpot).drainAura(closestSpot, 35); IAuraChunk.getAuraChunk(world, closestSpot).drainAura(closestSpot, 3500);
} }
} }

View file

@ -16,19 +16,19 @@ public class BalanceEffect implements IDrainSpotEffect {
@Override @Override
public void update(World world, Chunk chunk, IAuraChunk auraChunk, BlockPos pos, Integer spot) { public void update(World world, Chunk chunk, IAuraChunk auraChunk, BlockPos pos, Integer spot) {
if (spot < 1000) if (spot < 100000)
return; return;
int searchRadius = Math.min(45, spot / 100); int searchRadius = Math.min(45, spot / 10000);
MutableInt positiveAura = new MutableInt(); MutableInt positiveAura = new MutableInt();
IAuraChunk.getSpotsInArea(world, pos, searchRadius, (otherPos, otherSpot) -> { IAuraChunk.getSpotsInArea(world, pos, searchRadius, (otherPos, otherSpot) -> {
if (otherSpot > 0) if (otherSpot > 0)
positiveAura.add(otherSpot); positiveAura.add(otherSpot);
}); });
int radius = Math.min(80, positiveAura.intValue() / 50); int radius = Math.min(80, positiveAura.intValue() / 5000);
BlockPos lowestPos = IAuraChunk.getLowestSpot(world, pos, radius, null); BlockPos lowestPos = IAuraChunk.getLowestSpot(world, pos, radius, null);
if (lowestPos == null) if (lowestPos == null)
return; return;
int stored = IAuraChunk.getAuraChunk(world, lowestPos).storeAura(lowestPos, spot / 10); int stored = IAuraChunk.getAuraChunk(world, lowestPos).storeAura(lowestPos, spot / 500);
auraChunk.drainAura(pos, stored); auraChunk.drainAura(pos, stored);
} }

View file

@ -28,10 +28,10 @@ public class BreathlessEffect implements IDrainSpotEffect {
int aura = IAuraChunk.getAuraInArea(world, pos, 50); int aura = IAuraChunk.getAuraInArea(world, pos, 50);
if (aura > 0) if (aura > 0)
return; return;
int dist = Math.min(Math.abs(aura) / 500, 75); int dist = Math.min(Math.abs(aura) / 50000, 75);
if (dist < 10) if (dist < 10)
return; return;
int amp = Math.min(MathHelper.floor(Math.abs(aura) / 25000F), 3); int amp = Math.min(MathHelper.floor(Math.abs(aura) / 2500000F), 3);
List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class,
new AxisAlignedBB(pos).grow(dist)); new AxisAlignedBB(pos).grow(dist));

View file

@ -22,15 +22,15 @@ public class CacheRechargeEffect implements IDrainSpotEffect {
@Override @Override
public void update(World world, Chunk chunk, IAuraChunk auraChunk, BlockPos pos, Integer spot) { public void update(World world, Chunk chunk, IAuraChunk auraChunk, BlockPos pos, Integer spot) {
if (spot < 1000) if (spot < 100000)
return; return;
int aura = IAuraChunk.getAuraInArea(world, pos, 20); int aura = IAuraChunk.getAuraInArea(world, pos, 20);
if (aura < 15000) if (aura < 1500000)
return; return;
if (NaturesAuraAPI.instance().isEffectPowderActive(world, pos, NAME)) if (NaturesAuraAPI.instance().isEffectPowderActive(world, pos, NAME))
return; return;
int dist = MathHelper.clamp(aura / 3500, 3, 15); int dist = MathHelper.clamp(aura / 3500, 3, 15);
int amount = aura / 2500 - 2; int amount = aura / 250000 - 2;
List<EntityPlayer> players = world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(pos).grow(dist)); List<EntityPlayer> players = world.getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(pos).grow(dist));
for (EntityPlayer player : players) { for (EntityPlayer player : players) {

View file

@ -20,15 +20,15 @@ public class ExplosionEffect implements IDrainSpotEffect {
if (spot >= 0 || world.getTotalWorldTime() % 40 != 0) if (spot >= 0 || world.getTotalWorldTime() % 40 != 0)
return; return;
int aura = IAuraChunk.getAuraInArea(world, pos, 85); int aura = IAuraChunk.getAuraInArea(world, pos, 85);
if (aura > -50000) if (aura > -5000000)
return; return;
int chance = 140 - Math.abs(aura) / 2000; int chance = 140 - Math.abs(aura) / 200000;
if (chance > 1 && world.rand.nextInt(chance) != 0) if (chance > 1 && world.rand.nextInt(chance) != 0)
return; return;
float strength = Math.min(Math.abs(aura) / 50000F, 5F); float strength = Math.min(Math.abs(aura) / 5000000F, 5F);
if (strength <= 0) if (strength <= 0)
return; return;
int dist = MathHelper.clamp(Math.abs(aura) / 2000, 25, 100); int dist = MathHelper.clamp(Math.abs(aura) / 200000, 25, 100);
int x = MathHelper.floor(pos.getX() + world.rand.nextGaussian() * dist); int x = MathHelper.floor(pos.getX() + world.rand.nextGaussian() * dist);
int z = MathHelper.floor(pos.getZ() + world.rand.nextGaussian() * dist); int z = MathHelper.floor(pos.getZ() + world.rand.nextGaussian() * dist);

View file

@ -25,9 +25,9 @@ public class GrassDieEffect implements IDrainSpotEffect {
if (spot < 0) { if (spot < 0) {
int aura = IAuraChunk.getAuraInArea(world, pos, 50); int aura = IAuraChunk.getAuraInArea(world, pos, 50);
if (aura < 0) { if (aura < 0) {
int amount = Math.min(300, Math.abs(aura) / 1000); int amount = Math.min(300, Math.abs(aura) / 100000);
if (amount > 1) { if (amount > 1) {
int dist = MathHelper.clamp(Math.abs(aura) / 750, 5, 75); int dist = MathHelper.clamp(Math.abs(aura) / 75000, 5, 75);
for (int i = amount / 2 + world.rand.nextInt(amount / 2); i >= 0; i--) { for (int i = amount / 2 + world.rand.nextInt(amount / 2); i >= 0; i--) {
BlockPos grassPos = new BlockPos( BlockPos grassPos = new BlockPos(
pos.getX() + world.rand.nextGaussian() * dist, pos.getX() + world.rand.nextGaussian() * dist,

View file

@ -27,12 +27,12 @@ public class PlantBoostEffect implements IDrainSpotEffect {
if (spot <= 0) if (spot <= 0)
return; return;
int aura = IAuraChunk.getAuraInArea(world, pos, 30); int aura = IAuraChunk.getAuraInArea(world, pos, 30);
if (aura < 15000) if (aura < 1500000)
return; return;
int amount = Math.min(45, Math.abs(aura) / 1000); int amount = Math.min(45, Math.abs(aura) / 100000);
if (amount <= 1) if (amount <= 1)
return; return;
int dist = MathHelper.clamp(Math.abs(aura) / 1500, 5, 35); int dist = MathHelper.clamp(Math.abs(aura) / 150000, 5, 35);
for (int i = amount / 2 + world.rand.nextInt(amount / 2); i >= 0; i--) { for (int i = amount / 2 + world.rand.nextInt(amount / 2); i >= 0; i--) {
int x = MathHelper.floor(pos.getX() + world.rand.nextGaussian() * dist); int x = MathHelper.floor(pos.getX() + world.rand.nextGaussian() * dist);
@ -51,7 +51,7 @@ public class PlantBoostEffect implements IDrainSpotEffect {
growable.grow(world, world.rand, plantPos, state); growable.grow(world, world.rand, plantPos, state);
BlockPos closestSpot = IAuraChunk.getHighestSpot(world, plantPos, 25, pos); BlockPos closestSpot = IAuraChunk.getHighestSpot(world, plantPos, 25, pos);
IAuraChunk.getAuraChunk(world, closestSpot).drainAura(closestSpot, 35); IAuraChunk.getAuraChunk(world, closestSpot).drainAura(closestSpot, 3500);
PacketHandler.sendToAllAround(world, plantPos, 32, PacketHandler.sendToAllAround(world, plantPos, 32,
new PacketParticles(plantPos.getX(), plantPos.getY(), plantPos.getZ(), 6)); new PacketParticles(plantPos.getX(), plantPos.getY(), plantPos.getZ(), 6));

View file

@ -16,10 +16,10 @@ public class SpreadEffect implements IDrainSpotEffect {
@Override @Override
public void update(World world, Chunk chunk, IAuraChunk auraChunk, BlockPos pos, Integer spot) { public void update(World world, Chunk chunk, IAuraChunk auraChunk, BlockPos pos, Integer spot) {
if (Math.abs(spot) < 10000) if (Math.abs(spot) < 1000000)
return; return;
boolean drain = spot > 0; boolean drain = spot > 0;
int toMove = 7200; int toMove = 720000;
while (toMove > 0) { while (toMove > 0) {
BlockPos bestOffset = null; BlockPos bestOffset = null;
int bestAmount = drain ? Integer.MAX_VALUE : Integer.MIN_VALUE; int bestAmount = drain ? Integer.MAX_VALUE : Integer.MIN_VALUE;
@ -42,10 +42,10 @@ public class SpreadEffect implements IDrainSpotEffect {
int moved; int moved;
if (drain) { if (drain) {
moved = bestChunk.storeAura(bestPos, 1200); moved = bestChunk.storeAura(bestPos, 120000);
auraChunk.drainAura(pos, moved); auraChunk.drainAura(pos, moved);
} else { } else {
moved = bestChunk.drainAura(bestPos, 1200); moved = bestChunk.drainAura(bestPos, 120000);
auraChunk.storeAura(pos, moved); auraChunk.storeAura(pos, moved);
} }
toMove -= moved; toMove -= moved;

View file

@ -49,7 +49,7 @@ public class EntityMoverMinecart extends EntityMinecart {
int amount = chunk.getDrainSpot(spot); int amount = chunk.getDrainSpot(spot);
if (amount <= 0) if (amount <= 0)
continue; continue;
int toMove = Math.min(amount, 3000); int toMove = Math.min(amount, 300000);
int drained = chunk.drainAura(spot, toMove, false, false); int drained = chunk.drainAura(spot, toMove, false, false);
if (drained <= 0) if (drained <= 0)
continue; continue;

View file

@ -121,7 +121,7 @@ public class ClientEvents {
if (block instanceof IGrowable || block instanceof IPlantable || block.isLeaves(state, mc.world, pos)) { if (block instanceof IGrowable || block instanceof IPlantable || block.isLeaves(state, mc.world, pos)) {
int excess = IAuraChunk.triangulateAuraInArea(mc.world, pos, 45) - IAuraChunk.DEFAULT_AURA; int excess = IAuraChunk.triangulateAuraInArea(mc.world, pos, 45) - IAuraChunk.DEFAULT_AURA;
if (excess > 0) { if (excess > 0) {
int chance = Math.max(10, 50 - excess / 250); int chance = Math.max(10, 50 - excess / 25000);
if (mc.world.rand.nextInt(chance) <= 0) if (mc.world.rand.nextInt(chance) <= 0)
NaturesAuraAPI.instance().spawnMagicParticle( NaturesAuraAPI.instance().spawnMagicParticle(
pos.getX() + mc.world.rand.nextFloat(), pos.getX() + mc.world.rand.nextFloat(),
@ -131,8 +131,8 @@ public class ClientEvents {
mc.world.rand.nextFloat() * 0.025F, mc.world.rand.nextFloat() * 0.025F,
mc.world.rand.nextGaussian() * 0.01F, mc.world.rand.nextGaussian() * 0.01F,
BiomeColorHelper.getFoliageColorAtPos(mc.world, pos), BiomeColorHelper.getFoliageColorAtPos(mc.world, pos),
Math.min(2F, 1F + mc.world.rand.nextFloat() * (excess / 300F)), Math.min(2F, 1F + mc.world.rand.nextFloat() * (excess / 30000F)),
Math.min(300, 100 + mc.world.rand.nextInt(excess / 30 + 1)), Math.min(300, 100 + mc.world.rand.nextInt(excess / 3000 + 1)),
0F, false, true); 0F, false, true);
} }
} }
@ -183,6 +183,7 @@ public class ClientEvents {
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
GlStateManager.translate((pos.getX() + 0.1) / scale, (pos.getY() + 1) / scale, (pos.getZ() + 0.1) / scale); GlStateManager.translate((pos.getX() + 0.1) / scale, (pos.getY() + 1) / scale, (pos.getZ() + 0.1) / scale);
GlStateManager.rotate(90F, 1F, 0F, 0F); GlStateManager.rotate(90F, 1F, 0F, 0F);
GlStateManager.scale(0.75F, 0.75F, 0.75F);
mc.fontRenderer.drawString(spot.getValue().toString(), 0, 0, 0); mc.fontRenderer.drawString(spot.getValue().toString(), 0, 0, 0);
GlStateManager.popMatrix(); GlStateManager.popMatrix();
} }

View file

@ -49,7 +49,7 @@ public class ItemAuraBottle extends ItemImpl implements IColorProvidingItem {
dispense = setType(new ItemStack(ItemAuraBottle.this), IAuraType.forWorld(world)); dispense = setType(new ItemStack(ItemAuraBottle.this), IAuraType.forWorld(world));
BlockPos spot = IAuraChunk.getHighestSpot(world, offset, 30, offset); BlockPos spot = IAuraChunk.getHighestSpot(world, offset, 30, offset);
IAuraChunk.getAuraChunk(world, spot).drainAura(spot, 200); IAuraChunk.getAuraChunk(world, spot).drainAura(spot, 20000);
} }
} }
@ -79,7 +79,7 @@ public class ItemAuraBottle extends ItemImpl implements IColorProvidingItem {
setType(new ItemStack(this), IAuraType.forWorld(player.world))); setType(new ItemStack(this), IAuraType.forWorld(player.world)));
BlockPos spot = IAuraChunk.getHighestSpot(player.world, pos, 30, pos); BlockPos spot = IAuraChunk.getHighestSpot(player.world, pos, 30, pos);
IAuraChunk.getAuraChunk(player.world, spot).drainAura(spot, 200); IAuraChunk.getAuraChunk(player.world, spot).drainAura(spot, 20000);
player.world.playSound(null, player.posX, player.posY, player.posZ, player.world.playSound(null, player.posX, player.posY, player.posZ,
SoundEvents.ITEM_BOTTLE_FILL_DRAGONBREATH, SoundCategory.PLAYERS, 1F, 1F); SoundEvents.ITEM_BOTTLE_FILL_DRAGONBREATH, SoundCategory.PLAYERS, 1F, 1F);

View file

@ -82,7 +82,7 @@ public class ItemAuraCache extends ItemImpl implements ITrinketItem {
@Override @Override
public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable NBTTagCompound nbt) { public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable NBTTagCompound nbt) {
return new ICapabilityProvider() { return new ICapabilityProvider() {
private final ItemAuraContainer container = new ItemAuraContainer(stack, null, 4000); private final ItemAuraContainer container = new ItemAuraContainer(stack, null, 400000);
@Override @Override
public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) { public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) {

View file

@ -30,7 +30,7 @@ public class ItemBirthSpirit extends ItemGlowing {
parent.world.spawnEntity(item); parent.world.spawnEntity(item);
BlockPos spot = IAuraChunk.getHighestSpot(parent.world, pos, 30, pos); BlockPos spot = IAuraChunk.getHighestSpot(parent.world, pos, 30, pos);
IAuraChunk.getAuraChunk(parent.world, spot).drainAura(spot, 50 * amount); IAuraChunk.getAuraChunk(parent.world, spot).drainAura(spot, 800 * amount);
} }
} }
} }

View file

@ -57,7 +57,7 @@ public class ItemColorChanger extends ItemImpl implements IColorProvidingItem {
} }
} else { } else {
if (stored != null && stored != color) { if (stored != null && stored != color) {
if (NaturesAuraAPI.instance().extractAuraFromPlayer(player, 10, world.isRemote)) { if (NaturesAuraAPI.instance().extractAuraFromPlayer(player, 1000, world.isRemote)) {
if (firstColor == null) { if (firstColor == null) {
world.playSound(player, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, world.playSound(player, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5,
SoundEvents.ITEM_BUCKET_EMPTY, SoundCategory.PLAYERS, 0.65F, 1F); SoundEvents.ITEM_BUCKET_EMPTY, SoundCategory.PLAYERS, 0.65F, 1F);

View file

@ -73,7 +73,7 @@ public class ItemShockwaveCreator extends ItemImpl implements ITrinketItem {
return; return;
if (living.getDistanceSq(compound.getDouble("x"), compound.getDouble("y"), compound.getDouble("z")) > 0.75F) if (living.getDistanceSq(compound.getDouble("x"), compound.getDouble("y"), compound.getDouble("z")) > 0.75F)
return; return;
if (living instanceof EntityPlayer && !NaturesAuraAPI.instance().extractAuraFromPlayer((EntityPlayer) living, 10, false)) if (living instanceof EntityPlayer && !NaturesAuraAPI.instance().extractAuraFromPlayer((EntityPlayer) living, 1000, false))
return; return;
DamageSource source; DamageSource source;
@ -92,7 +92,7 @@ public class ItemShockwaveCreator extends ItemImpl implements ITrinketItem {
continue; continue;
if (living.getDistanceSq(mob) > range * range) if (living.getDistanceSq(mob) > range * range)
continue; continue;
if (living instanceof EntityPlayer && !NaturesAuraAPI.instance().extractAuraFromPlayer((EntityPlayer) living, 5, false)) if (living instanceof EntityPlayer && !NaturesAuraAPI.instance().extractAuraFromPlayer((EntityPlayer) living, 500, false))
break; break;
mob.attackEntityFrom(source, 4F); mob.attackEntityFrom(source, 4F);

View file

@ -54,16 +54,15 @@ public class ParticleMagic extends Particle {
this.motionY -= 0.04D * (double) this.particleGravity; this.motionY -= 0.04D * (double) this.particleGravity;
this.move(this.motionX, this.motionY, this.motionZ); this.move(this.motionX, this.motionY, this.motionZ);
if (this.fade) {
float lifeRatio = (float) this.particleAge / (float) this.particleMaxAge; float lifeRatio = (float) this.particleAge / (float) this.particleMaxAge;
if (this.fade)
this.particleAlpha = 1F - lifeRatio * 0.75F; this.particleAlpha = 1F - lifeRatio * 0.75F;
if (lifeRatio <= 0.25F) if (lifeRatio <= 0.25F)
this.particleScale = this.desiredScale * (lifeRatio / 0.25F); this.particleScale = this.desiredScale * (lifeRatio / 0.25F);
else else if (this.fade)
this.particleScale = this.desiredScale * (1F - (lifeRatio - 0.25F) / 0.75F); this.particleScale = this.desiredScale * (1F - (lifeRatio - 0.25F) / 0.75F);
} }
} }
}
@Override @Override
public int getFXLayer() { public int getFXLayer() {

View file

@ -112,48 +112,48 @@ public final class ModRecipes {
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "infused_iron"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "infused_iron"),
Ingredient.fromItem(Items.IRON_INGOT), new ItemStack(ModItems.INFUSED_IRON), Ingredient.fromItem(Items.IRON_INGOT), new ItemStack(ModItems.INFUSED_IRON),
Ingredient.EMPTY, 150, 80).register(); Ingredient.EMPTY, 15000, 80).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "infused_iron_block"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "infused_iron_block"),
Helper.blockIng(Blocks.IRON_BLOCK), new ItemStack(ModBlocks.INFUSED_IRON), Helper.blockIng(Blocks.IRON_BLOCK), new ItemStack(ModBlocks.INFUSED_IRON),
Ingredient.EMPTY, 1350, 700).register(); Ingredient.EMPTY, 135000, 700).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "infused_stone"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "infused_stone"),
Helper.blockIng(Blocks.STONE), new ItemStack(ModBlocks.INFUSED_STONE), Helper.blockIng(Blocks.STONE), new ItemStack(ModBlocks.INFUSED_STONE),
Ingredient.EMPTY, 75, 40).register(); Ingredient.EMPTY, 7500, 40).register();
Ingredient conversion = Helper.blockIng(ModBlocks.CONVERSION_CATALYST); Ingredient conversion = Helper.blockIng(ModBlocks.CONVERSION_CATALYST);
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "breath"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "breath"),
new NBTIngredient(ItemAuraBottle.setType(new ItemStack(ModItems.AURA_BOTTLE), NaturesAuraAPI.TYPE_END)), new NBTIngredient(ItemAuraBottle.setType(new ItemStack(ModItems.AURA_BOTTLE), NaturesAuraAPI.TYPE_END)),
new ItemStack(Items.DRAGON_BREATH), new ItemStack(Items.DRAGON_BREATH),
conversion, 200, 80).register(); conversion, 20000, 80).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "leather"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "leather"),
Ingredient.fromItem(Items.ROTTEN_FLESH), new ItemStack(Items.LEATHER), Ingredient.fromItem(Items.ROTTEN_FLESH), new ItemStack(Items.LEATHER),
conversion, 100, 50).register(); conversion, 10000, 50).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "soul_sand"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "soul_sand"),
Helper.blockIng(Blocks.SAND), new ItemStack(Blocks.SOUL_SAND), Helper.blockIng(Blocks.SAND), new ItemStack(Blocks.SOUL_SAND),
conversion, 50, 100).register(); conversion, 5000, 100).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "nether_wart"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "nether_wart"),
Helper.blockIng(Blocks.RED_MUSHROOM), new ItemStack(Items.NETHER_WART), Helper.blockIng(Blocks.RED_MUSHROOM), new ItemStack(Items.NETHER_WART),
conversion, 300, 250).register(); conversion, 30000, 250).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "prismarine"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "prismarine"),
Ingredient.fromItem(Items.QUARTZ), new ItemStack(Items.PRISMARINE_SHARD), Ingredient.fromItem(Items.QUARTZ), new ItemStack(Items.PRISMARINE_SHARD),
conversion, 550, 200).register(); conversion, 55000, 200).register();
Ingredient crushing = Helper.blockIng(ModBlocks.CRUSHING_CATALYST); Ingredient crushing = Helper.blockIng(ModBlocks.CRUSHING_CATALYST);
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "bone"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "bone"),
Ingredient.fromItem(Items.BONE), new ItemStack(Items.DYE, 6, 15), Ingredient.fromItem(Items.BONE), new ItemStack(Items.DYE, 6, 15),
crushing, 30, 40).register(); crushing, 3000, 40).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sugar"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sugar"),
Ingredient.fromItem(Items.REEDS), new ItemStack(Items.SUGAR, 3), Ingredient.fromItem(Items.REEDS), new ItemStack(Items.SUGAR, 3),
crushing, 30, 40).register(); crushing, 3000, 40).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "blaze"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "blaze"),
Ingredient.fromItem(Items.BLAZE_ROD), new ItemStack(Items.BLAZE_POWDER, 4), Ingredient.fromItem(Items.BLAZE_ROD), new ItemStack(Items.BLAZE_POWDER, 4),
crushing, 50, 60).register(); crushing, 5000, 60).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "glowstone"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "glowstone"),
Helper.blockIng(Blocks.GLOWSTONE), new ItemStack(Items.GLOWSTONE_DUST, 4), Helper.blockIng(Blocks.GLOWSTONE), new ItemStack(Items.GLOWSTONE_DUST, 4),
crushing, 30, 40).register(); crushing, 3000, 40).register();
new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sand"), new AltarRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sand"),
Helper.blockIng(Blocks.COBBLESTONE), new ItemStack(Blocks.SAND), Helper.blockIng(Blocks.COBBLESTONE), new ItemStack(Blocks.SAND),
crushing, 30, 40).register(); crushing, 3000, 40).register();
new OfferingRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sky_ingot"), new OfferingRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sky_ingot"),
new AmountIngredient(new ItemStack(ModItems.INFUSED_IRON, 3)), new AmountIngredient(new ItemStack(ModItems.INFUSED_IRON, 3)),
@ -171,7 +171,7 @@ public final class ModRecipes {
if (block instanceof BlockFlower) if (block instanceof BlockFlower)
NaturesAuraAPI.FLOWERS.addAll(block.getBlockState().getValidStates()); NaturesAuraAPI.FLOWERS.addAll(block.getBlockState().getValidStates());
spawner("cow", "minecraft:cow", 500, 60, Ingredient.fromItem(Items.BEEF), Ingredient.fromItem(Items.LEATHER)); spawner("cow", "minecraft:cow", 50000, 60, Ingredient.fromItem(Items.BEEF), Ingredient.fromItem(Items.LEATHER));
for (EnumDyeColor color : EnumDyeColor.values()) for (EnumDyeColor color : EnumDyeColor.values())
new AnimalSpawnerRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sheep_" + color.getName()), new ResourceLocation("minecraft:sheep"), new AnimalSpawnerRecipe(new ResourceLocation(NaturesAura.MOD_ID, "sheep_" + color.getName()), new ResourceLocation("minecraft:sheep"),
500, 60, Ingredient.fromItem(ModItems.BIRTH_SPIRIT), Ingredient.fromItem(Items.MUTTON), 500, 60, Ingredient.fromItem(ModItems.BIRTH_SPIRIT), Ingredient.fromItem(Items.MUTTON),
@ -183,39 +183,39 @@ public final class ModRecipes {
return sheep; return sheep;
} }
}.register(); }.register();
spawner("chicken", "minecraft:chicken", 300, 40, Ingredient.fromItem(Items.FEATHER), Ingredient.fromItem(Items.EGG)); spawner("chicken", "minecraft:chicken", 30000, 40, Ingredient.fromItem(Items.FEATHER), Ingredient.fromItem(Items.EGG));
spawner("pig", "minecraft:pig", 500, 60, Ingredient.fromItem(Items.PORKCHOP)); spawner("pig", "minecraft:pig", 50000, 60, Ingredient.fromItem(Items.PORKCHOP));
spawner("blaze", "minecraft:blaze", 1500, 120, Ingredient.fromItem(Items.BLAZE_ROD), Ingredient.fromItem(Items.BLAZE_POWDER)); spawner("blaze", "minecraft:blaze", 150000, 120, Ingredient.fromItem(Items.BLAZE_ROD), Ingredient.fromItem(Items.BLAZE_POWDER));
spawner("ghast", "minecraft:ghast", 1200, 150, Ingredient.fromItem(Items.GUNPOWDER), Ingredient.fromItem(Items.GHAST_TEAR)); spawner("ghast", "minecraft:ghast", 120000, 150, Ingredient.fromItem(Items.GUNPOWDER), Ingredient.fromItem(Items.GHAST_TEAR));
spawner("ocelot", "minecraft:ocelot", 800, 60, Ingredient.fromItem(Items.FISH), Helper.blockIng(Blocks.WOOL)); spawner("ocelot", "minecraft:ocelot", 80000, 60, Ingredient.fromItem(Items.FISH), Helper.blockIng(Blocks.WOOL));
spawner("mule", "minecraft:mule", 1000, 100, Ingredient.fromItem(Items.LEATHER), Helper.blockIng(Blocks.CHEST), Ingredient.fromItem(Items.APPLE)); spawner("mule", "minecraft:mule", 100000, 100, Ingredient.fromItem(Items.LEATHER), Helper.blockIng(Blocks.CHEST), Ingredient.fromItem(Items.APPLE));
spawner("bat", "minecraft:bat", 300, 40, Ingredient.fromItem(Items.FEATHER)); spawner("bat", "minecraft:bat", 30000, 40, Ingredient.fromItem(Items.FEATHER));
spawner("endermite", "minecraft:endermite", 300, 40, Ingredient.fromItem(Items.ENDER_PEARL), Helper.blockIng(Blocks.STONE)); spawner("endermite", "minecraft:endermite", 30000, 40, Ingredient.fromItem(Items.ENDER_PEARL), Helper.blockIng(Blocks.STONE));
spawner("parrot", "minecraft:parrot", 500, 60, Ingredient.fromItem(Items.FEATHER), Ingredient.fromItem(Items.COOKIE)); spawner("parrot", "minecraft:parrot", 50000, 60, Ingredient.fromItem(Items.FEATHER), Ingredient.fromItem(Items.COOKIE));
spawner("slime", "minecraft:slime", 300, 40, Ingredient.fromItem(Items.SLIME_BALL)); spawner("slime", "minecraft:slime", 30000, 40, Ingredient.fromItem(Items.SLIME_BALL));
spawner("spider", "minecraft:spider", 1000, 120, Ingredient.fromItem(Items.STRING), Ingredient.fromItem(Items.SPIDER_EYE)); spawner("spider", "minecraft:spider", 100000, 120, Ingredient.fromItem(Items.STRING), Ingredient.fromItem(Items.SPIDER_EYE));
spawner("skeleton", "minecraft:skeleton", 1000, 120, Ingredient.fromItem(Items.BONE), Ingredient.fromItem(Items.ARROW)); spawner("skeleton", "minecraft:skeleton", 100000, 120, Ingredient.fromItem(Items.BONE), Ingredient.fromItem(Items.ARROW));
spawner("enderman", "minecraft:enderman", 1200, 120, Ingredient.fromItem(Items.ENDER_PEARL)); spawner("enderman", "minecraft:enderman", 120000, 120, Ingredient.fromItem(Items.ENDER_PEARL));
spawner("silverfish", "minecraft:silverfish", 300, 40, Helper.blockIng(Blocks.STONE)); spawner("silverfish", "minecraft:silverfish", 30000, 40, Helper.blockIng(Blocks.STONE));
spawner("squid", "minecraft:squid", 500, 40, Ingredient.fromStacks(new ItemStack(Items.DYE, 1, EnumDyeColor.BLACK.getDyeDamage()))); spawner("squid", "minecraft:squid", 50000, 40, Ingredient.fromStacks(new ItemStack(Items.DYE, 1, EnumDyeColor.BLACK.getDyeDamage())));
spawner("stray", "minecraft:stray", 1000, 120, Ingredient.fromItem(Items.BONE), Helper.blockIng(Blocks.ICE)); spawner("stray", "minecraft:stray", 100000, 120, Ingredient.fromItem(Items.BONE), Helper.blockIng(Blocks.ICE));
spawner("shulker", "minecraft:shulker", 1500, 100, Ingredient.fromItem(Items.SHULKER_SHELL)); spawner("shulker", "minecraft:shulker", 150000, 100, Ingredient.fromItem(Items.SHULKER_SHELL));
spawner("husk", "minecraft:husk", 1000, 120, Ingredient.fromItem(Items.ROTTEN_FLESH), Helper.blockIng(Blocks.SAND)); spawner("husk", "minecraft:husk", 100000, 120, Ingredient.fromItem(Items.ROTTEN_FLESH), Helper.blockIng(Blocks.SAND));
spawner("llama", "minecraft:llama", 600, 80, Ingredient.fromStacks(new ItemStack(Blocks.WOOL, 1, OreDictionary.WILDCARD_VALUE))); spawner("llama", "minecraft:llama", 60000, 80, Ingredient.fromStacks(new ItemStack(Blocks.WOOL, 1, OreDictionary.WILDCARD_VALUE)));
spawner("rabbit", "minecraft:rabbit", 300, 40, Ingredient.fromItem(Items.RABBIT_HIDE)); spawner("rabbit", "minecraft:rabbit", 30000, 40, Ingredient.fromItem(Items.RABBIT_HIDE));
spawner("magma_cube", "minecraft:magma_cube", 1000, 100, Ingredient.fromItem(Items.MAGMA_CREAM)); spawner("magma_cube", "minecraft:magma_cube", 100000, 100, Ingredient.fromItem(Items.MAGMA_CREAM));
spawner("zombie_pigman", "minecraft:zombie_pigman", 1200, 150, Ingredient.fromItem(Items.ROTTEN_FLESH), Ingredient.fromItem(Items.GOLD_NUGGET)); spawner("zombie_pigman", "minecraft:zombie_pigman", 120000, 150, Ingredient.fromItem(Items.ROTTEN_FLESH), Ingredient.fromItem(Items.GOLD_NUGGET));
spawner("polar_bear", "minecraft:polar_bear", 500, 60, Ingredient.fromItem(Items.FISH), Helper.blockIng(Blocks.ICE)); spawner("polar_bear", "minecraft:polar_bear", 50000, 60, Ingredient.fromItem(Items.FISH), Helper.blockIng(Blocks.ICE));
spawner("mooshroom", "minecraft:mooshroom", 400, 60, Ingredient.fromItem(Items.LEATHER), Helper.blockIng(Blocks.RED_MUSHROOM)); spawner("mooshroom", "minecraft:mooshroom", 40000, 60, Ingredient.fromItem(Items.LEATHER), Helper.blockIng(Blocks.RED_MUSHROOM));
spawner("guardian", "minecraft:guardian", 1500, 150, Ingredient.fromItem(Items.PRISMARINE_SHARD), Ingredient.fromItem(Items.PRISMARINE_CRYSTALS)); spawner("guardian", "minecraft:guardian", 150000, 150, Ingredient.fromItem(Items.PRISMARINE_SHARD), Ingredient.fromItem(Items.PRISMARINE_CRYSTALS));
spawner("horse", "minecraft:horse", 1000, 100, Ingredient.fromItem(Items.LEATHER)); spawner("horse", "minecraft:horse", 100000, 100, Ingredient.fromItem(Items.LEATHER));
spawner("donkey", "minecraft:donkey", 1000, 100, Ingredient.fromItem(Items.LEATHER), Helper.blockIng(Blocks.CHEST)); spawner("donkey", "minecraft:donkey", 100000, 100, Ingredient.fromItem(Items.LEATHER), Helper.blockIng(Blocks.CHEST));
spawner("cave_spider", "minecraft:cave_spider", 1000, 120, Ingredient.fromItem(Items.STRING), Ingredient.fromItem(Items.FERMENTED_SPIDER_EYE)); spawner("cave_spider", "minecraft:cave_spider", 100000, 120, Ingredient.fromItem(Items.STRING), Ingredient.fromItem(Items.FERMENTED_SPIDER_EYE));
spawner("creeper", "minecraft:creeper", 1000, 120, Ingredient.fromItem(Items.GUNPOWDER)); spawner("creeper", "minecraft:creeper", 100000, 120, Ingredient.fromItem(Items.GUNPOWDER));
spawner("witch", "minecraft:witch", 1500, 150, Ingredient.fromItem(Items.GLASS_BOTTLE), Ingredient.fromItem(Items.GLOWSTONE_DUST)); spawner("witch", "minecraft:witch", 150000, 150, Ingredient.fromItem(Items.GLASS_BOTTLE), Ingredient.fromItem(Items.GLOWSTONE_DUST));
spawner("wither_skeleton", "minecraft:wither_skeleton", 1500, 150, Ingredient.fromItem(Items.BONE), Helper.blockIng(Blocks.OBSIDIAN)); spawner("wither_skeleton", "minecraft:wither_skeleton", 150000, 150, Ingredient.fromItem(Items.BONE), Helper.blockIng(Blocks.OBSIDIAN));
spawner("wolf", "minecraft:wolf", 500, 60, Ingredient.fromItem(Items.LEATHER), Ingredient.fromItem(Items.BONE)); spawner("wolf", "minecraft:wolf", 50000, 60, Ingredient.fromItem(Items.LEATHER), Ingredient.fromItem(Items.BONE));
spawner("zombie", "minecraft:zombie", 1000, 100, Ingredient.fromItem(Items.ROTTEN_FLESH)); spawner("zombie", "minecraft:zombie", 100000, 100, Ingredient.fromItem(Items.ROTTEN_FLESH));
} }
private static void spawner(String name, String entity, int aura, int time, Ingredient... ings) { private static void spawner(String name, String entity, int aura, int time, Ingredient... ings) {