mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 10:12:53 +00:00
Markers
This commit is contained in:
parent
3b981e2818
commit
0dc0d5c981
@ -42,6 +42,7 @@ import com.volmit.iris.engine.object.IrisJigsawPiece;
|
|||||||
import com.volmit.iris.engine.object.IrisJigsawPool;
|
import com.volmit.iris.engine.object.IrisJigsawPool;
|
||||||
import com.volmit.iris.engine.object.IrisJigsawStructure;
|
import com.volmit.iris.engine.object.IrisJigsawStructure;
|
||||||
import com.volmit.iris.engine.object.IrisLootTable;
|
import com.volmit.iris.engine.object.IrisLootTable;
|
||||||
|
import com.volmit.iris.engine.object.IrisMarker;
|
||||||
import com.volmit.iris.engine.object.IrisMod;
|
import com.volmit.iris.engine.object.IrisMod;
|
||||||
import com.volmit.iris.engine.object.IrisObject;
|
import com.volmit.iris.engine.object.IrisObject;
|
||||||
import com.volmit.iris.engine.object.IrisRavine;
|
import com.volmit.iris.engine.object.IrisRavine;
|
||||||
@ -79,6 +80,7 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
|
|||||||
private ResourceLoader<IrisJigsawPool> jigsawPoolLoader;
|
private ResourceLoader<IrisJigsawPool> jigsawPoolLoader;
|
||||||
private ResourceLoader<IrisJigsawStructure> jigsawStructureLoader;
|
private ResourceLoader<IrisJigsawStructure> jigsawStructureLoader;
|
||||||
private ResourceLoader<IrisEntity> entityLoader;
|
private ResourceLoader<IrisEntity> entityLoader;
|
||||||
|
private ResourceLoader<IrisMarker> markerLoader;
|
||||||
private ResourceLoader<IrisSpawner> spawnerLoader;
|
private ResourceLoader<IrisSpawner> spawnerLoader;
|
||||||
private ResourceLoader<IrisMod> modLoader;
|
private ResourceLoader<IrisMod> modLoader;
|
||||||
private ResourceLoader<IrisBlockData> blockLoader;
|
private ResourceLoader<IrisBlockData> blockLoader;
|
||||||
@ -176,6 +178,10 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
|
|||||||
return loadAny(key, (dm) -> dm.getRegionLoader().load(key, false));
|
return loadAny(key, (dm) -> dm.getRegionLoader().load(key, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IrisMarker loadAnyMarker(String key) {
|
||||||
|
return loadAny(key, (dm) -> dm.getMarkerLoader().load(key, false));
|
||||||
|
}
|
||||||
|
|
||||||
public static IrisCave loadAnyCave(String key) {
|
public static IrisCave loadAnyCave(String key) {
|
||||||
return loadAny(key, (dm) -> dm.getCaveLoader().load(key, false));
|
return loadAny(key, (dm) -> dm.getCaveLoader().load(key, false));
|
||||||
}
|
}
|
||||||
@ -324,6 +330,7 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory {
|
|||||||
this.jigsawPieceLoader = registerLoader(IrisJigsawPiece.class);
|
this.jigsawPieceLoader = registerLoader(IrisJigsawPiece.class);
|
||||||
this.generatorLoader = registerLoader(IrisGenerator.class);
|
this.generatorLoader = registerLoader(IrisGenerator.class);
|
||||||
this.caveLoader = registerLoader(IrisCave.class);
|
this.caveLoader = registerLoader(IrisCave.class);
|
||||||
|
this.markerLoader = registerLoader(IrisMarker.class);
|
||||||
this.ravineLoader = registerLoader(IrisRavine.class);
|
this.ravineLoader = registerLoader(IrisRavine.class);
|
||||||
this.blockLoader = registerLoader(IrisBlockData.class);
|
this.blockLoader = registerLoader(IrisBlockData.class);
|
||||||
this.expressionLoader = registerLoader(IrisExpression.class);
|
this.expressionLoader = registerLoader(IrisExpression.class);
|
||||||
|
63
src/main/java/com/volmit/iris/engine/object/IrisMarker.java
Normal file
63
src/main/java/com/volmit/iris/engine/object/IrisMarker.java
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Iris is a World Generator for Minecraft Bukkit Servers
|
||||||
|
* Copyright (c) 2021 Arcane Arts (Volmit Software)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.volmit.iris.engine.object;
|
||||||
|
|
||||||
|
import com.volmit.iris.core.loader.IrisRegistrant;
|
||||||
|
import com.volmit.iris.engine.object.annotations.ArrayType;
|
||||||
|
import com.volmit.iris.engine.object.annotations.Desc;
|
||||||
|
import com.volmit.iris.engine.object.annotations.MaxNumber;
|
||||||
|
import com.volmit.iris.engine.object.annotations.MinNumber;
|
||||||
|
import com.volmit.iris.engine.object.annotations.RegistryListResource;
|
||||||
|
import com.volmit.iris.engine.object.annotations.Required;
|
||||||
|
import com.volmit.iris.util.collection.KList;
|
||||||
|
import com.volmit.iris.util.json.JSONObject;
|
||||||
|
import com.volmit.iris.util.plugin.VolmitSender;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Desc("Represents a marker")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class IrisMarker extends IrisRegistrant {
|
||||||
|
@Desc("A list of spawners to add to anywhere this marker is. Note markers can only support initial spawns!")
|
||||||
|
@RegistryListResource(IrisSpawner.class)
|
||||||
|
@ArrayType(type = String.class, min = 1)
|
||||||
|
private KList<String> spawners = new KList<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getFolderName() {
|
||||||
|
return "markers";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTypeName() {
|
||||||
|
return "Marker";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void scanForErrors(JSONObject p, VolmitSender sender) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* Iris is a World Generator for Minecraft Bukkit Servers
|
||||||
|
* Copyright (c) 2021 Arcane Arts (Volmit Software)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.volmit.iris.engine.object;
|
||||||
|
|
||||||
|
import com.volmit.iris.engine.object.annotations.ArrayType;
|
||||||
|
import com.volmit.iris.engine.object.annotations.Desc;
|
||||||
|
import com.volmit.iris.engine.object.annotations.MaxNumber;
|
||||||
|
import com.volmit.iris.engine.object.annotations.MinNumber;
|
||||||
|
import com.volmit.iris.engine.object.annotations.Required;
|
||||||
|
import com.volmit.iris.engine.object.annotations.Snippet;
|
||||||
|
import com.volmit.iris.util.collection.KList;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Snippet("object-marker")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Desc("Find blocks to mark")
|
||||||
|
@Data
|
||||||
|
public class IrisObjectMarker {
|
||||||
|
@ArrayType(min = 1, type = IrisBlockData.class)
|
||||||
|
@Required
|
||||||
|
@Desc("Find block types to mark")
|
||||||
|
private KList<IrisBlockData> mark = new KList<>();
|
||||||
|
|
||||||
|
@MinNumber(1)
|
||||||
|
@MaxNumber(16)
|
||||||
|
@Desc("The maximum amount of markers to place. Use these sparingly!")
|
||||||
|
private int maximumMarkers = 8;
|
||||||
|
|
||||||
|
@MinNumber(0.01)
|
||||||
|
@MaxNumber(1)
|
||||||
|
@Desc("The percentage of blocks in this object to check.")
|
||||||
|
private double checkRatio = 0.33;
|
||||||
|
|
||||||
|
@Desc("If true, markers will only be placed here if there is 2 air blocks above it.")
|
||||||
|
private boolean emptyAbove = true;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user