Skip to content

Commit de5564d

Browse files
committed
Expose world's WorldArchetype & WorldArchetypeType
Also make the builders CopyableBuilder.
1 parent 356e1fa commit de5564d

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

src/main/java/org/spongepowered/api/data/Keys.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,8 @@
290290
import org.spongepowered.api.world.portal.PortalLogic;
291291
import org.spongepowered.api.world.server.ServerLocation;
292292
import org.spongepowered.api.world.server.ServerWorld;
293+
import org.spongepowered.api.world.server.WorldArchetype;
294+
import org.spongepowered.api.world.server.WorldArchetypeType;
293295
import org.spongepowered.api.world.server.storage.ServerWorldProperties;
294296
import org.spongepowered.api.world.storage.WorldProperties;
295297
import org.spongepowered.api.world.weather.Weather;
@@ -3550,6 +3552,18 @@ public final class Keys {
35503552
*/
35513553
public static final Key<Value<Sheep>> WOLOLO_TARGET = Keys.key(ResourceKey.sponge("wololo_target"), Sheep.class);
35523554

3555+
/**
3556+
* The {@link WorldArchetype} of a {@link World} or {@link ServerWorldProperties}
3557+
* Readonly
3558+
*/
3559+
public static final Key<Value<WorldArchetype>> WORLD_ARCHETYPE = Keys.key(ResourceKey.sponge("world_archetype"), WorldArchetype.class);
3560+
3561+
/**
3562+
* The {@link WorldArchetypeType} of a {@link World} or {@link ServerWorldProperties}
3563+
* Readonly
3564+
*/
3565+
public static final Key<Value<WorldArchetypeType>> WORLD_ARCHETYPE_TYPE = Keys.key(ResourceKey.sponge("world_archetype_type"), WorldArchetypeType.class);
3566+
35533567
/**
35543568
* The world border of {@link WorldProperties}
35553569
* Readonly

src/main/java/org/spongepowered/api/world/server/WorldArchetype.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package org.spongepowered.api.world.server;
2626

2727
import org.spongepowered.api.Sponge;
28+
import org.spongepowered.api.util.CopyableBuilder;
2829
import org.spongepowered.api.world.generation.config.WorldGenerationConfig;
2930

3031
import java.util.Optional;
@@ -47,7 +48,7 @@ static WorldArchetype of(WorldArchetypeType type, WorldGenerationConfig generati
4748

4849
Optional<WorldGenerationConfig> generationConfig();
4950

50-
interface Builder extends org.spongepowered.api.util.Builder<WorldArchetype, Builder> {
51+
interface Builder extends org.spongepowered.api.util.Builder<WorldArchetype, Builder>, CopyableBuilder<WorldArchetype, Builder> {
5152

5253
Builder type(WorldArchetypeType type);
5354

src/main/java/org/spongepowered/api/world/server/WorldArchetypeType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.spongepowered.api.Sponge;
2828
import org.spongepowered.api.datapack.DataPackSerializable;
2929
import org.spongepowered.api.registry.DefaultedRegistryValue;
30+
import org.spongepowered.api.util.CopyableBuilder;
3031
import org.spongepowered.api.util.annotation.CatalogedBy;
3132
import org.spongepowered.api.world.WorldType;
3233
import org.spongepowered.api.world.generation.ChunkGenerator;
@@ -49,7 +50,7 @@ static WorldArchetypeType of(WorldType worldType, ChunkGenerator chunkGenerator)
4950

5051
ChunkGenerator chunkGenerator();
5152

52-
interface Builder extends org.spongepowered.api.util.Builder<WorldArchetypeType, Builder> {
53+
interface Builder extends org.spongepowered.api.util.Builder<WorldArchetypeType, Builder>, CopyableBuilder<WorldArchetypeType, Builder> {
5354

5455
Builder worldType(WorldType worldType);
5556

src/main/java/org/spongepowered/api/world/server/storage/ServerWorldProperties.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.spongepowered.api.world.generation.config.WorldGenerationConfig;
4646
import org.spongepowered.api.world.server.ServerWorld;
4747
import org.spongepowered.api.world.server.WorldArchetype;
48+
import org.spongepowered.api.world.server.WorldArchetypeType;
4849
import org.spongepowered.api.world.storage.WorldProperties;
4950
import org.spongepowered.api.world.weather.Weather;
5051
import org.spongepowered.api.world.weather.WeatherUniverse;
@@ -377,6 +378,14 @@ default Weather weather() {
377378
return this.require(Keys.WEATHER);
378379
}
379380

381+
default WorldArchetypeType worldArchetypeType() {
382+
return this.require(Keys.WORLD_ARCHETYPE_TYPE);
383+
}
384+
385+
default WorldArchetype worldArchetype() {
386+
return this.require(Keys.WORLD_ARCHETYPE);
387+
}
388+
380389
/**
381390
* Customize the load process of a {@link ServerWorldProperties}.
382391
*/

0 commit comments

Comments
 (0)