mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
test
This commit is contained in:
parent
ea8d1100ac
commit
f4191ad984
@ -23,6 +23,7 @@ import com.volmit.iris.core.project.loader.IrisData;
|
||||
import com.volmit.iris.core.tools.IrisWorlds;
|
||||
import com.volmit.iris.engine.framework.IrisAccess;
|
||||
import com.volmit.iris.engine.object.IrisBiome;
|
||||
import com.volmit.iris.engine.object.IrisJigsawStructure;
|
||||
import com.volmit.iris.engine.object.IrisRegion;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.format.C;
|
||||
@ -82,6 +83,7 @@ public class CommandIrisStudioGoto extends MortarCommand {
|
||||
IrisAccess g = IrisWorlds.access(world);
|
||||
IrisBiome b = IrisData.loadAnyBiome(args[0]);
|
||||
IrisRegion r = IrisData.loadAnyRegion(args[0]);
|
||||
IrisJigsawStructure s = IrisData.loadAnyJigsawStructure(args[0]);
|
||||
|
||||
if (b != null) {
|
||||
J.a(() -> {
|
||||
@ -105,6 +107,17 @@ public class CommandIrisStudioGoto extends MortarCommand {
|
||||
J.s(() -> sender.player().teleport(l));
|
||||
}
|
||||
});
|
||||
}else if (s != null) {
|
||||
J.a(() -> {
|
||||
Location l = g.lookForRegion(r, 60000, (v) -> sender.sendMessage(C.BOLD + "" + C.WHITE + r.getName() + C.RESET + C.GRAY + ": Checked " + Form.f(v) + " Places"));
|
||||
|
||||
if (l == null) {
|
||||
sender.sendMessage("Couldn't find " + r.getName() + ".");
|
||||
} else {
|
||||
sender.sendMessage("Found " + r.getName() + "!");
|
||||
J.s(() -> sender.player().teleport(l));
|
||||
}
|
||||
});
|
||||
} else {
|
||||
sender.sendMessage(args[0] + " is not a biome or region in this dimension. (Biome teleportation works best!");
|
||||
}
|
||||
|
@ -45,7 +45,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
@Data
|
||||
public class IrisComplex implements DataProvider {
|
||||
public static AtomicBoolean cacheLock = new AtomicBoolean(false);
|
||||
private RNG rng;
|
||||
private double fluidHeight;
|
||||
private IrisData data;
|
||||
|
@ -26,6 +26,8 @@ import com.volmit.iris.engine.data.DataProvider;
|
||||
import com.volmit.iris.engine.data.mca.NBTWorld;
|
||||
import com.volmit.iris.engine.headless.HeadlessGenerator;
|
||||
import com.volmit.iris.engine.object.IrisBiome;
|
||||
import com.volmit.iris.engine.object.IrisJigsawStructure;
|
||||
import com.volmit.iris.engine.object.IrisJigsawStructurePlacement;
|
||||
import com.volmit.iris.engine.object.IrisRegion;
|
||||
import com.volmit.iris.engine.object.common.IrisWorld;
|
||||
import com.volmit.iris.engine.parallel.MultiBurst;
|
||||
@ -124,7 +126,6 @@ public interface IrisAccess extends Hotloadable, DataProvider {
|
||||
return null;
|
||||
}
|
||||
|
||||
IrisComplex.cacheLock.set(true);
|
||||
ChronoLatch cl = new ChronoLatch(250, false);
|
||||
long s = M.ms();
|
||||
int cpus = (Runtime.getRuntime().availableProcessors());
|
||||
@ -137,7 +138,6 @@ public interface IrisAccess extends Hotloadable, DataProvider {
|
||||
}
|
||||
|
||||
if (engines.isEmpty()) {
|
||||
IrisComplex.cacheLock.set(false);
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -193,12 +193,10 @@ public interface IrisAccess extends Hotloadable, DataProvider {
|
||||
|
||||
if (M.ms() - s > timeout) {
|
||||
running.set(false);
|
||||
IrisComplex.cacheLock.set(false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
IrisComplex.cacheLock.set(false);
|
||||
running.set(false);
|
||||
return location.get();
|
||||
}
|
||||
@ -209,7 +207,6 @@ public interface IrisAccess extends Hotloadable, DataProvider {
|
||||
return null;
|
||||
}
|
||||
|
||||
IrisComplex.cacheLock.set(true);
|
||||
ChronoLatch cl = new ChronoLatch(3000, false);
|
||||
long s = M.ms();
|
||||
int cpus = (Runtime.getRuntime().availableProcessors());
|
||||
@ -222,7 +219,6 @@ public interface IrisAccess extends Hotloadable, DataProvider {
|
||||
}
|
||||
|
||||
if (engines.isEmpty()) {
|
||||
IrisComplex.cacheLock.set(false);
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -269,13 +265,11 @@ public interface IrisAccess extends Hotloadable, DataProvider {
|
||||
if (M.ms() - s > timeout) {
|
||||
triesc.accept(tries.get());
|
||||
running.set(false);
|
||||
IrisComplex.cacheLock.set(false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
triesc.accept(tries.get());
|
||||
IrisComplex.cacheLock.set(false);
|
||||
running.set(false);
|
||||
return location.get();
|
||||
}
|
||||
|
@ -44,6 +44,7 @@ import org.bukkit.util.BlockVector;
|
||||
public class PlannedPiece {
|
||||
private IrisPosition position;
|
||||
private IrisObject object;
|
||||
private IrisObject ogObject;
|
||||
private IrisJigsawPiece piece;
|
||||
private IrisObjectRotation rotation;
|
||||
private IrisData data;
|
||||
@ -65,10 +66,12 @@ public class PlannedPiece {
|
||||
this.position = position;
|
||||
this.data = piece.getLoader();
|
||||
this.setRotation(rot);
|
||||
this.ogObject = data.getObjectLoader().load(piece.getObject());
|
||||
this.object = structure.rotated(piece, rotation);
|
||||
this.piece = rotation.rotateCopy(piece);
|
||||
this.piece.setLoadKey(piece.getLoadKey());
|
||||
this.object.setLoadKey(piece.getObject());
|
||||
this.ogObject.setLoadKey(piece.getObject());
|
||||
this.connected = new KList<>();
|
||||
}
|
||||
|
||||
@ -150,11 +153,12 @@ public class PlannedPiece {
|
||||
minY--; //If the dimension has no bedrock, allow it to go a block lower
|
||||
}
|
||||
|
||||
getPiece().getPlacementOptions().getRotation().setEnabled(false);
|
||||
getPiece().getPlacementOptions().setRotation(rotation);
|
||||
int finalMinY = minY;
|
||||
RNG rng = getStructure().getRng().nextParallelRNG(37555);
|
||||
|
||||
// TODO: REAL CLASSES!!!!!!!
|
||||
getObject().place(position.getX() + getObject().getCenter().getBlockX(), position.getY() + getObject().getCenter().getBlockY(), position.getZ() + getObject().getCenter().getBlockZ(), new IObjectPlacer() {
|
||||
getOgObject().place(position.getX() + getObject().getCenter().getBlockX(), position.getY() + getObject().getCenter().getBlockY(), position.getZ() + getObject().getCenter().getBlockZ(), new IObjectPlacer() {
|
||||
@Override
|
||||
public int getHighest(int x, int z, IrisData data) {
|
||||
return position.getY();
|
||||
|
@ -97,6 +97,7 @@ public class PlannedStructure {
|
||||
options.setMode(i.getPiece().getPlaceMode());
|
||||
}
|
||||
|
||||
IrisObject vo = i.getOgObject();
|
||||
IrisObject v = i.getObject();
|
||||
int sx = (v.getW() / 2);
|
||||
int sz = (v.getD() / 2);
|
||||
@ -111,7 +112,7 @@ public class PlannedStructure {
|
||||
|
||||
int id = rng.i(0, Integer.MAX_VALUE);
|
||||
|
||||
int h = v.place(xx, height, zz, placer, options, rng, (b) -> {
|
||||
int h = vo.place(xx, height, zz, placer, options, rng, (b) -> {
|
||||
int xf = b.getX();
|
||||
int yf = b.getY();
|
||||
int zf = b.getZ();
|
||||
|
@ -725,13 +725,14 @@ public class IrisObject extends IrisRegistrant {
|
||||
KMap<BlockVector, BlockData> d = new KMap<>();
|
||||
|
||||
for (BlockVector i : getBlocks().keySet()) {
|
||||
d.put(r.rotate(i.clone(), spinx, spiny, spinz), r.rotate(Objects.requireNonNull(getBlocks().get(i)).clone(), spinx, spiny, spinz));
|
||||
d.put(r.rotate(i.clone(), spinx, spiny, spinz), r.rotate(getBlocks().get(i).clone(),
|
||||
spinx, spiny, spinz));
|
||||
}
|
||||
|
||||
KMap<BlockVector, TileData<? extends TileState>> dx = new KMap<>();
|
||||
|
||||
for (BlockVector i : getStates().keySet()) {
|
||||
dx.put(r.rotate(i.clone(), spinx, spiny, spinz), Objects.requireNonNull(getStates().get(i)));
|
||||
dx.put(r.rotate(i.clone(), spinx, spiny, spinz), getStates().get(i));
|
||||
}
|
||||
|
||||
blocks = d;
|
||||
|
@ -30,6 +30,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.data.*;
|
||||
import org.bukkit.util.BlockVector;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -395,7 +396,6 @@ public class IrisObjectRotation {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user