mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-08-29 13:20:32 +00:00
implement terrascript profiling
This commit is contained in:
@@ -32,6 +32,7 @@ import com.dfsek.terra.api.structures.structure.Rotation;
|
|||||||
import com.dfsek.terra.api.structures.structure.buffer.Buffer;
|
import com.dfsek.terra.api.structures.structure.buffer.Buffer;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer;
|
import com.dfsek.terra.api.structures.structure.buffer.DirectBuffer;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer;
|
import com.dfsek.terra.api.structures.structure.buffer.StructureBuffer;
|
||||||
|
import com.dfsek.terra.profiler.ProfileFrame;
|
||||||
import com.google.common.cache.Cache;
|
import com.google.common.cache.Cache;
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
@@ -105,21 +106,27 @@ public class StructureScript {
|
|||||||
* @return Whether generation was successful
|
* @return Whether generation was successful
|
||||||
*/
|
*/
|
||||||
public boolean execute(Location location, Random random, Rotation rotation) {
|
public boolean execute(Location location, Random random, Rotation rotation) {
|
||||||
StructureBuffer buffer = new StructureBuffer(location);
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript:" + id)) {
|
||||||
boolean level = applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
StructureBuffer buffer = new StructureBuffer(location);
|
||||||
buffer.paste();
|
boolean level = applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
||||||
return level;
|
buffer.paste();
|
||||||
|
return level;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean execute(Location location, Chunk chunk, Random random, Rotation rotation) {
|
public boolean execute(Location location, Chunk chunk, Random random, Rotation rotation) {
|
||||||
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_chunk:" + id)) {
|
||||||
buffer.paste(chunk);
|
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
||||||
return buffer.succeeded();
|
buffer.paste(chunk);
|
||||||
|
return buffer.succeeded();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean test(Location location, Random random, Rotation rotation) {
|
public boolean test(Location location, Random random, Rotation rotation) {
|
||||||
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_test:" + id)) {
|
||||||
return buffer.succeeded();
|
StructureBuffer buffer = computeBuffer(location, random, rotation);
|
||||||
|
return buffer.succeeded();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private StructureBuffer computeBuffer(Location location, Random random, Rotation rotation) {
|
private StructureBuffer computeBuffer(Location location, Random random, Rotation rotation) {
|
||||||
@@ -135,12 +142,16 @@ public class StructureScript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
|
public boolean executeInBuffer(Buffer buffer, Random random, Rotation rotation, int recursions) {
|
||||||
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, recursions));
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_recursive:" + id)) {
|
||||||
|
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, recursions));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean executeDirect(Location location, Random random, Rotation rotation) {
|
public boolean executeDirect(Location location, Random random, Rotation rotation) {
|
||||||
DirectBuffer buffer = new DirectBuffer(location);
|
try(ProfileFrame ignore = main.getProfiler().profile("terrascript_direct:" + id)) {
|
||||||
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
DirectBuffer buffer = new DirectBuffer(location);
|
||||||
|
return applyBlock(new TerraImplementationArguments(buffer, rotation, random, 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
|
|||||||
Reference in New Issue
Block a user