mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-22 19:58:34 +01:00
add profiler calls for the biggest performance hogs. Also numbers bad for survival go away no
This commit is contained in:
parent
cd61b2a8f1
commit
57af7e50c1
5 changed files with 23 additions and 13 deletions
|
@ -1,5 +1,6 @@
|
|||
package de.ellpeck.naturesaura.aura.chunk;
|
||||
|
||||
import de.ellpeck.naturesaura.NaturesAura;
|
||||
import de.ellpeck.naturesaura.aura.Capabilities;
|
||||
import de.ellpeck.naturesaura.aura.chunk.effect.GrassDieEffect;
|
||||
import de.ellpeck.naturesaura.aura.chunk.effect.IDrainSpotEffect;
|
||||
|
@ -45,6 +46,7 @@ public class AuraChunk implements ICapabilityProvider, INBTSerializable<NBTTagCo
|
|||
}
|
||||
|
||||
public static void getSpotsInArea(World world, BlockPos pos, int radius, BiConsumer<BlockPos, MutableInt> consumer) {
|
||||
world.profiler.func_194340_a(() -> NaturesAura.MOD_ID + ":getSpotsInArea");
|
||||
for (int x = (pos.getX() - radius) >> 4; x <= (pos.getX() + radius) >> 4; x++) {
|
||||
for (int z = (pos.getZ() - radius) >> 4; z <= (pos.getZ() + radius) >> 4; z++) {
|
||||
Chunk chunk = world.getChunk(x, z);
|
||||
|
@ -54,6 +56,7 @@ public class AuraChunk implements ICapabilityProvider, INBTSerializable<NBTTagCo
|
|||
}
|
||||
}
|
||||
}
|
||||
world.profiler.endSection();
|
||||
}
|
||||
|
||||
public static int getAuraInArea(World world, BlockPos pos, int radius) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package de.ellpeck.naturesaura.aura.chunk.effect;
|
||||
|
||||
import de.ellpeck.naturesaura.NaturesAura;
|
||||
import de.ellpeck.naturesaura.aura.chunk.AuraChunk;
|
||||
import de.ellpeck.naturesaura.blocks.ModBlocks;
|
||||
import net.minecraft.block.*;
|
||||
|
@ -14,6 +15,7 @@ import org.apache.commons.lang3.mutable.MutableInt;
|
|||
public class GrassDieEffect implements IDrainSpotEffect {
|
||||
@Override
|
||||
public void update(World world, Chunk chunk, AuraChunk auraChunk, BlockPos pos, MutableInt spot) {
|
||||
world.profiler.func_194340_a(() -> NaturesAura.MOD_ID + ":GrassDieEffect");
|
||||
if (spot.intValue() < 0) {
|
||||
int aura = AuraChunk.getAuraInArea(world, pos, 25);
|
||||
if (aura < 0) {
|
||||
|
@ -47,5 +49,6 @@ public class GrassDieEffect implements IDrainSpotEffect {
|
|||
}
|
||||
}
|
||||
}
|
||||
world.profiler.endSection();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package de.ellpeck.naturesaura.aura.chunk.effect;
|
||||
|
||||
import de.ellpeck.naturesaura.Helper;
|
||||
import de.ellpeck.naturesaura.NaturesAura;
|
||||
import de.ellpeck.naturesaura.aura.Capabilities;
|
||||
import de.ellpeck.naturesaura.aura.chunk.AuraChunk;
|
||||
import de.ellpeck.naturesaura.aura.chunk.ISpotDrainable;
|
||||
|
@ -16,6 +17,7 @@ import java.util.List;
|
|||
public class ReplenishingEffect implements IDrainSpotEffect {
|
||||
@Override
|
||||
public void update(World world, Chunk chunk, AuraChunk auraChunk, BlockPos pos, MutableInt spot) {
|
||||
world.profiler.func_194340_a(() -> NaturesAura.MOD_ID + ":ReplenishingEffect");
|
||||
int amount = spot.intValue();
|
||||
if (amount < 0) {
|
||||
List<ISpotDrainable> tiles = new ArrayList<>();
|
||||
|
@ -39,5 +41,6 @@ public class ReplenishingEffect implements IDrainSpotEffect {
|
|||
}
|
||||
}
|
||||
}
|
||||
world.profiler.endSection();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,20 +47,19 @@ public class ClientEvents {
|
|||
String prefix = TextFormatting.GREEN + "[" + NaturesAura.MOD_NAME + "]" + TextFormatting.RESET + " ";
|
||||
List<String> left = event.getLeft();
|
||||
left.add("");
|
||||
left.add(prefix + "PartScrn: " + ParticleHandler.getParticleAmount());
|
||||
left.add(prefix + "Particles: " + ParticleHandler.getParticleAmount());
|
||||
|
||||
boolean adv = mc.gameSettings.showDebugProfilerChart;
|
||||
if (adv)
|
||||
left.add(prefix + "DrainSpots:");
|
||||
MutableInt amount = new MutableInt(AuraChunk.DEFAULT_AURA);
|
||||
MutableInt spots = new MutableInt();
|
||||
AuraChunk.getSpotsInArea(mc.world, mc.player.getPosition(), 15, ((blockPos, drainSpot) -> {
|
||||
spots.increment();
|
||||
amount.add(drainSpot.intValue());
|
||||
if (adv)
|
||||
left.add(prefix + drainSpot.intValue() + " @ " + blockPos.getX()+" "+blockPos.getY()+" "+blockPos.getZ());
|
||||
}));
|
||||
left.add(prefix + "Aura: " + amount.intValue() + " in " + spots.intValue() + " spots");
|
||||
if (mc.player.capabilities.isCreativeMode) {
|
||||
left.add(prefix + "Aura:");
|
||||
MutableInt amount = new MutableInt(AuraChunk.DEFAULT_AURA);
|
||||
MutableInt spots = new MutableInt();
|
||||
AuraChunk.getSpotsInArea(mc.world, mc.player.getPosition(), 15, ((blockPos, drainSpot) -> {
|
||||
spots.increment();
|
||||
amount.add(drainSpot.intValue());
|
||||
left.add(prefix + drainSpot.intValue() + " @ " + blockPos.getX() + " " + blockPos.getY() + " " + blockPos.getZ());
|
||||
}));
|
||||
left.add(prefix + "Total: " + amount.intValue() + " in " + spots.intValue() + " spots");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ public class CommonEvents {
|
|||
public void onWorldTick(TickEvent.WorldTickEvent event) {
|
||||
if (!event.world.isRemote && event.phase == TickEvent.Phase.END) {
|
||||
if (event.world.getTotalWorldTime() % 20 == 0) {
|
||||
event.world.profiler.func_194340_a(() -> NaturesAura.MOD_ID + ":onWorldTick");
|
||||
Iterator<Chunk> chunks = event.world.getPersistentChunkIterable(((WorldServer) event.world).getPlayerChunkMap().getChunkIterator());
|
||||
while (chunks.hasNext()) {
|
||||
Chunk chunk = chunks.next();
|
||||
|
@ -36,6 +37,7 @@ public class CommonEvents {
|
|||
auraChunk.update();
|
||||
}
|
||||
}
|
||||
event.world.profiler.endSection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue