Add strongholds (POG)

This commit is contained in:
CocoTheOwner
2021-02-26 12:28:58 +01:00
parent 044c7f997d
commit e6113b4aa1
5 changed files with 86 additions and 33 deletions

View File

@@ -16,6 +16,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.event.Listener;
import org.bukkit.generator.BlockPopulator;
import java.util.List;
public interface EngineCompound extends Listener, Hotloadable, DataProvider
{
public IrisDimension getRootDimension();
@@ -24,7 +26,7 @@ public interface EngineCompound extends Listener, Hotloadable, DataProvider
public World getWorld();
public IrisPosition getStrongholdPosition();
public List<IrisPosition> getStrongholdPositions();
public void printMetrics(CommandSender sender);

View File

@@ -7,12 +7,13 @@ import lombok.Data;
import java.io.File;
import java.io.IOException;
import java.util.List;
@Data
public class EngineData {
private String dimension;
private String lastVersion;
private IrisPosition strongholdPosition;
private List<IrisPosition> strongholdPositions;
public void save(File f)
{

View File

@@ -21,6 +21,7 @@ import org.bukkit.block.data.BlockData;
import org.bukkit.util.BlockVector;
import org.bukkit.util.Consumer;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -345,6 +346,10 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
{
KList<Runnable> placeAfter = new KList<>();
if (structure == null){
return null;
}
if(structure.getFeature() != null)
{
if(structure.getFeature().getBlockRadius() == 32)
@@ -366,13 +371,13 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
if(getEngine().getDimension().getStronghold() != null)
{
IrisPosition pos = getEngine().getCompound().getStrongholdPosition();
if(x == pos.getX() >> 4 && z == pos.getZ() >> 4)
{
IrisJigsawStructure structure = getData().getJigsawStructureLoader().load(getEngine().getDimension().getStronghold());
placeAfter.addAll(placeStructure(pos, structure, rng));
placed = true;
List<IrisPosition> poss = getEngine().getCompound().getStrongholdPositions();
for (IrisPosition pos : poss) {
if (x == pos.getX() >> 4 && z == pos.getZ() >> 4) {
IrisJigsawStructure structure = getData().getJigsawStructureLoader().load(getEngine().getDimension().getStronghold());
placeAfter.addAll(placeStructure(pos, structure, rng));
placed = true;
}
}
}