mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
Merge remote-tracking branch 'origin/ver/6.0.0' into architecture/slf4j-logging
# Conflicts: # common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java # common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/command/structure/StructureExportCommand.java # common/addons/config-structure/src/main/java/com/dfsek/terra/addons/structure/structures/loot/functions/EnchantFunction.java # common/addons/language-yaml/src/main/java/com/dfsek/terra/addons/yaml/YamlAddon.java # common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedBlock.java # common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java # common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedStateManipulator.java # common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java # common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/LootFunction.java # common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/StructureFunction.java # common/api/core/src/main/java/com/dfsek/terra/api/Platform.java # common/implementation/src/main/java/com/dfsek/terra/AbstractPlatform.java # common/implementation/src/main/java/com/dfsek/terra/InternalAddon.java # common/implementation/src/main/java/com/dfsek/terra/commands/AddonsCommand.java # common/implementation/src/main/java/com/dfsek/terra/commands/ReloadCommand.java # common/implementation/src/main/java/com/dfsek/terra/commands/profiler/ProfileQueryCommand.java # common/implementation/src/main/java/com/dfsek/terra/config/PluginConfigImpl.java # common/implementation/src/main/java/com/dfsek/terra/config/lang/LangUtil.java # common/implementation/src/main/java/com/dfsek/terra/config/pack/ConfigPackImpl.java # common/implementation/src/main/java/com/dfsek/terra/event/FunctionalEventHandlerImpl.java # common/implementation/src/main/java/com/dfsek/terra/registry/config/ConfigTypeRegistry.java # common/implementation/src/main/java/com/dfsek/terra/registry/master/AddonRegistry.java # common/implementation/src/main/java/com/dfsek/terra/registry/master/ConfigRegistry.java # platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/BukkitAddon.java # platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java # platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/listeners/SpigotListener.java # platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricAddon.java # platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java # platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java # platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java # platforms/sponge/src/main/java/com/dfsek/terra/sponge/PlatformImpl.java
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.dfsek.terra.bukkit;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.addon.annotations.Addon;
|
||||
import com.dfsek.terra.api.addon.annotations.Author;
|
||||
@@ -11,10 +11,10 @@ import com.dfsek.terra.api.addon.annotations.Version;
|
||||
@Version("1.0.0")
|
||||
@Author("Terra")
|
||||
public final class BukkitAddon extends TerraAddon {
|
||||
private final TerraPlugin main;
|
||||
private final Platform platform;
|
||||
|
||||
public BukkitAddon(TerraPlugin main) {
|
||||
this.main = main;
|
||||
public BukkitAddon(Platform platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-3
@@ -9,7 +9,8 @@ import java.io.File;
|
||||
import java.util.Locale;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.dfsek.terra.AbstractTerraPlugin;
|
||||
import com.dfsek.terra.AbstractPlatform;
|
||||
import com.dfsek.terra.api.util.Logger;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.block.state.BlockState;
|
||||
import com.dfsek.terra.api.handle.ItemHandle;
|
||||
@@ -20,14 +21,14 @@ import com.dfsek.terra.bukkit.handles.BukkitWorldHandle;
|
||||
import com.dfsek.terra.bukkit.world.BukkitBiome;
|
||||
|
||||
|
||||
public class TerraPluginImpl extends AbstractTerraPlugin {
|
||||
public class PlatformImpl extends AbstractPlatform {
|
||||
private final ItemHandle itemHandle = new BukkitItemHandle();
|
||||
|
||||
private final WorldHandle handle = new BukkitWorldHandle();
|
||||
|
||||
private final TerraBukkitPlugin plugin;
|
||||
|
||||
public TerraPluginImpl(TerraBukkitPlugin plugin) {
|
||||
public PlatformImpl(TerraBukkitPlugin plugin) {
|
||||
this.plugin = plugin;
|
||||
load();
|
||||
}
|
||||
@@ -34,7 +34,7 @@ import com.dfsek.terra.commands.TerraCommandManager;
|
||||
public class TerraBukkitPlugin extends JavaPlugin {
|
||||
private static final Logger logger = LoggerFactory.getLogger(TerraBukkitPlugin.class);
|
||||
|
||||
private final TerraPluginImpl terraPlugin = new TerraPluginImpl(this);
|
||||
private final PlatformImpl terraPlugin = new PlatformImpl(this);
|
||||
private final Map<String, com.dfsek.terra.api.world.generator.ChunkGenerator> generatorMap = new HashMap<>();
|
||||
private final Map<String, ConfigPack> worlds = new HashMap<>();
|
||||
|
||||
|
||||
+4
-4
@@ -14,7 +14,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.Platform;
|
||||
import com.dfsek.terra.api.config.WorldConfig;
|
||||
import com.dfsek.terra.api.world.Chunk;
|
||||
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||
@@ -33,7 +33,7 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener
|
||||
|
||||
private final ChunkGenerator delegate;
|
||||
|
||||
private final TerraPlugin main;
|
||||
private final Platform platform;
|
||||
|
||||
private boolean needsLoad = true;
|
||||
|
||||
@@ -41,8 +41,8 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener
|
||||
|
||||
public BukkitChunkGeneratorWrapper(ChunkGenerator delegate) {
|
||||
this.delegate = delegate;
|
||||
this.main = delegate.getMain();
|
||||
this.popMan = new PopulationManager(delegate, main);
|
||||
this.platform = delegate.getPlatform();
|
||||
this.popMan = new PopulationManager(delegate, platform);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.dfsek.terra.bukkit.listeners;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.TreeType;
|
||||
import org.bukkit.block.Block;
|
||||
@@ -9,7 +11,6 @@ import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.world.StructureGrowEvent;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.config.WorldConfig;
|
||||
import com.dfsek.terra.api.util.vector.Vector3;
|
||||
import com.dfsek.terra.api.world.Tree;
|
||||
@@ -34,10 +35,10 @@ public class CommonListener implements Listener {
|
||||
.add(TreeType.MEGA_REDWOOD, "MEGA_SPRUCE")
|
||||
.add(TreeType.SWAMP, "SWAMP_OAK"))
|
||||
.addTransform(TreeType::toString).build();
|
||||
private final TerraPlugin main;
|
||||
private final Platform platform;
|
||||
|
||||
public CommonListener(TerraPlugin main) {
|
||||
this.main = main;
|
||||
public CommonListener(Platform platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.dfsek.terra.bukkit.listeners;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
|
||||
import io.papermc.paper.event.world.StructureLocateEvent;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
|
||||
|
||||
public class PaperListener implements Listener {
|
||||
private final TerraPlugin main;
|
||||
private final Platform platform;
|
||||
|
||||
public PaperListener(TerraPlugin main) {
|
||||
this.main = main;
|
||||
public PaperListener(Platform platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.dfsek.terra.bukkit.listeners;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
@@ -10,8 +12,6 @@ import org.bukkit.event.entity.VillagerCareerChangeEvent;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
|
||||
|
||||
/**
|
||||
* Listener to load on Spigot servers, contains Villager crash prevention and hacky ender eye redirection.
|
||||
@@ -20,12 +20,11 @@ import com.dfsek.terra.api.TerraPlugin;
|
||||
* StructureLocateEvent).
|
||||
*/
|
||||
public class SpigotListener implements Listener {
|
||||
private final Platform platform;
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpigotListener.class);
|
||||
|
||||
private final TerraPlugin main;
|
||||
|
||||
public SpigotListener(TerraPlugin main) {
|
||||
this.main = main;
|
||||
public SpigotListener(Platform platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
|
||||
+8
-7
@@ -1,5 +1,7 @@
|
||||
package com.dfsek.terra.bukkit.population;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -8,13 +10,12 @@ import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.Random;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.profiler.ProfileFrame;
|
||||
import com.dfsek.terra.api.world.Chunk;
|
||||
import com.dfsek.terra.api.world.World;
|
||||
import com.dfsek.terra.api.world.generator.ChunkGenerator;
|
||||
import com.dfsek.terra.api.world.generator.Chunkified;
|
||||
import com.dfsek.terra.bukkit.TerraPluginImpl;
|
||||
import com.dfsek.terra.bukkit.PlatformImpl;
|
||||
import com.dfsek.terra.bukkit.world.BukkitAdapter;
|
||||
import com.dfsek.terra.bukkit.world.BukkitWorld;
|
||||
import com.dfsek.terra.util.FastRandom;
|
||||
@@ -26,11 +27,11 @@ import com.dfsek.terra.util.FastRandom;
|
||||
public class PopulationManager extends BlockPopulator {
|
||||
private final ChunkGenerator generator;
|
||||
private final HashSet<ChunkCoordinate> needsPop = new HashSet<>();
|
||||
private final TerraPlugin main;
|
||||
private final Platform platform;
|
||||
|
||||
public PopulationManager(ChunkGenerator generator, TerraPlugin main) {
|
||||
public PopulationManager(ChunkGenerator generator, Platform platform) {
|
||||
this.generator = generator;
|
||||
this.main = main;
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
public static File getDataFolder(World w) {
|
||||
@@ -77,12 +78,12 @@ public class PopulationManager extends BlockPopulator {
|
||||
@Override
|
||||
@SuppressWarnings("try")
|
||||
public void populate(org.bukkit.@NotNull World world, @NotNull Random random, org.bukkit.@NotNull Chunk source) {
|
||||
try(ProfileFrame ignore = main.getProfiler().profile("popman")) {
|
||||
try(ProfileFrame ignore = platform.getProfiler().profile("popman")) {
|
||||
Chunk chunk = BukkitAdapter.adapt(source);
|
||||
needsPop.add(new ChunkCoordinate(chunk));
|
||||
int x = chunk.getX();
|
||||
int z = chunk.getZ();
|
||||
if(((TerraPluginImpl) main).getPlugin().isEnabled()) {
|
||||
if(((PlatformImpl) platform).getPlugin().isEnabled()) {
|
||||
for(int xi = -1; xi <= 1; xi++) {
|
||||
for(int zi = -1; zi <= 1; zi++) {
|
||||
if(xi == 0 && zi == 0) continue;
|
||||
|
||||
@@ -57,132 +57,81 @@ public final class BukkitAdapter {
|
||||
}
|
||||
|
||||
public static Axis adapt(org.bukkit.Axis axis) {
|
||||
switch(axis) {
|
||||
case X:
|
||||
return Axis.X;
|
||||
case Y:
|
||||
return Axis.Y;
|
||||
case Z:
|
||||
return Axis.Z;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(axis) {
|
||||
case X -> Axis.X;
|
||||
case Y -> Axis.Y;
|
||||
case Z -> Axis.Z;
|
||||
};
|
||||
}
|
||||
|
||||
public static Half adapt(org.bukkit.block.data.Bisected.Half half) {
|
||||
switch(half) {
|
||||
case BOTTOM:
|
||||
return Half.BOTTOM;
|
||||
case TOP:
|
||||
return Half.TOP;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(half) {
|
||||
case BOTTOM -> Half.BOTTOM;
|
||||
case TOP -> Half.TOP;
|
||||
};
|
||||
}
|
||||
|
||||
public static RedstoneConnection adapt(org.bukkit.block.data.type.RedstoneWire.Connection connection) {
|
||||
switch(connection) {
|
||||
case NONE:
|
||||
return RedstoneConnection.NONE;
|
||||
case UP:
|
||||
return RedstoneConnection.UP;
|
||||
case SIDE:
|
||||
return RedstoneConnection.SIDE;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(connection) {
|
||||
case NONE -> RedstoneConnection.NONE;
|
||||
case UP -> RedstoneConnection.UP;
|
||||
case SIDE -> RedstoneConnection.SIDE;
|
||||
};
|
||||
}
|
||||
|
||||
public static org.bukkit.block.data.type.RedstoneWire.Connection adapt(RedstoneConnection connection) {
|
||||
switch(connection) {
|
||||
case SIDE:
|
||||
return org.bukkit.block.data.type.RedstoneWire.Connection.SIDE;
|
||||
case UP:
|
||||
return org.bukkit.block.data.type.RedstoneWire.Connection.UP;
|
||||
case NONE:
|
||||
return org.bukkit.block.data.type.RedstoneWire.Connection.NONE;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(connection) {
|
||||
case SIDE -> org.bukkit.block.data.type.RedstoneWire.Connection.SIDE;
|
||||
case UP -> org.bukkit.block.data.type.RedstoneWire.Connection.UP;
|
||||
case NONE -> org.bukkit.block.data.type.RedstoneWire.Connection.NONE;
|
||||
};
|
||||
}
|
||||
|
||||
public static RailShape adapt(org.bukkit.block.data.Rail.Shape shape) {
|
||||
switch(shape) {
|
||||
case SOUTH_WEST:
|
||||
return RailShape.SOUTH_WEST;
|
||||
case SOUTH_EAST:
|
||||
return RailShape.SOUTH_EAST;
|
||||
case NORTH_EAST:
|
||||
return RailShape.NORTH_EAST;
|
||||
case NORTH_WEST:
|
||||
return RailShape.NORTH_WEST;
|
||||
case ASCENDING_EAST:
|
||||
return RailShape.ASCENDING_EAST;
|
||||
case ASCENDING_WEST:
|
||||
return RailShape.ASCENDING_WEST;
|
||||
case ASCENDING_SOUTH:
|
||||
return RailShape.ASCENDING_SOUTH;
|
||||
case ASCENDING_NORTH:
|
||||
return RailShape.ASCENDING_NORTH;
|
||||
case NORTH_SOUTH:
|
||||
return RailShape.NORTH_SOUTH;
|
||||
case EAST_WEST:
|
||||
return RailShape.EAST_WEST;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(shape) {
|
||||
case SOUTH_WEST -> RailShape.SOUTH_WEST;
|
||||
case SOUTH_EAST -> RailShape.SOUTH_EAST;
|
||||
case NORTH_EAST -> RailShape.NORTH_EAST;
|
||||
case NORTH_WEST -> RailShape.NORTH_WEST;
|
||||
case ASCENDING_EAST -> RailShape.ASCENDING_EAST;
|
||||
case ASCENDING_WEST -> RailShape.ASCENDING_WEST;
|
||||
case ASCENDING_SOUTH -> RailShape.ASCENDING_SOUTH;
|
||||
case ASCENDING_NORTH -> RailShape.ASCENDING_NORTH;
|
||||
case NORTH_SOUTH -> RailShape.NORTH_SOUTH;
|
||||
case EAST_WEST -> RailShape.EAST_WEST;
|
||||
};
|
||||
}
|
||||
|
||||
public static org.bukkit.block.data.Rail.Shape adapt(RailShape shape) {
|
||||
switch(shape) {
|
||||
case EAST_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.EAST_WEST;
|
||||
case NORTH_SOUTH:
|
||||
return org.bukkit.block.data.Rail.Shape.NORTH_SOUTH;
|
||||
case ASCENDING_NORTH:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_WEST;
|
||||
case ASCENDING_EAST:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_EAST;
|
||||
case NORTH_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.NORTH_WEST;
|
||||
case NORTH_EAST:
|
||||
return org.bukkit.block.data.Rail.Shape.NORTH_EAST;
|
||||
case SOUTH_EAST:
|
||||
return org.bukkit.block.data.Rail.Shape.SOUTH_EAST;
|
||||
case SOUTH_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.SOUTH_WEST;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(shape) {
|
||||
case EAST_WEST -> org.bukkit.block.data.Rail.Shape.EAST_WEST;
|
||||
case NORTH_SOUTH -> org.bukkit.block.data.Rail.Shape.NORTH_SOUTH;
|
||||
case ASCENDING_NORTH -> org.bukkit.block.data.Rail.Shape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH -> org.bukkit.block.data.Rail.Shape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST -> org.bukkit.block.data.Rail.Shape.ASCENDING_WEST;
|
||||
case ASCENDING_EAST -> org.bukkit.block.data.Rail.Shape.ASCENDING_EAST;
|
||||
case NORTH_WEST -> org.bukkit.block.data.Rail.Shape.NORTH_WEST;
|
||||
case NORTH_EAST -> org.bukkit.block.data.Rail.Shape.NORTH_EAST;
|
||||
case SOUTH_EAST -> org.bukkit.block.data.Rail.Shape.SOUTH_EAST;
|
||||
case SOUTH_WEST -> org.bukkit.block.data.Rail.Shape.SOUTH_WEST;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public static org.bukkit.block.data.Bisected.Half adapt(Half half) {
|
||||
switch(half) {
|
||||
case TOP:
|
||||
return org.bukkit.block.data.Bisected.Half.TOP;
|
||||
case BOTTOM:
|
||||
return org.bukkit.block.data.Bisected.Half.BOTTOM;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(half) {
|
||||
case TOP -> org.bukkit.block.data.Bisected.Half.TOP;
|
||||
case BOTTOM -> org.bukkit.block.data.Bisected.Half.BOTTOM;
|
||||
default -> throw new IllegalStateException();
|
||||
};
|
||||
}
|
||||
|
||||
public static org.bukkit.Axis adapt(Axis axis) {
|
||||
switch(axis) {
|
||||
case Z:
|
||||
return org.bukkit.Axis.Z;
|
||||
case Y:
|
||||
return org.bukkit.Axis.Y;
|
||||
case X:
|
||||
return org.bukkit.Axis.X;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(axis) {
|
||||
case Z -> org.bukkit.Axis.Z;
|
||||
case Y -> org.bukkit.Axis.Y;
|
||||
case X -> org.bukkit.Axis.X;
|
||||
};
|
||||
}
|
||||
|
||||
public static Vector3 adapt(Location location) {
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package com.dfsek.terra.bukkit.world;
|
||||
|
||||
import com.dfsek.terra.api.Platform;
|
||||
|
||||
import org.bukkit.TreeType;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.handle.WorldHandle;
|
||||
import com.dfsek.terra.api.profiler.ProfileFrame;
|
||||
import com.dfsek.terra.api.util.collection.MaterialSet;
|
||||
@@ -17,37 +18,32 @@ import com.dfsek.terra.api.world.World;
|
||||
public class BukkitTree implements Tree {
|
||||
private final TreeType delegate;
|
||||
private final MaterialSet spawnable;
|
||||
private final TerraPlugin main;
|
||||
private final Platform platform;
|
||||
|
||||
public BukkitTree(TreeType delegate, TerraPlugin main) {
|
||||
public BukkitTree(TreeType delegate, Platform platform) {
|
||||
this.delegate = delegate;
|
||||
this.main = main;
|
||||
this.platform = platform;
|
||||
this.spawnable = getSpawnable(delegate);
|
||||
}
|
||||
|
||||
private MaterialSet getSpawnable(TreeType type) {
|
||||
WorldHandle handle = main.getWorldHandle();
|
||||
switch(type) {
|
||||
case CRIMSON_FUNGUS:
|
||||
return MaterialSet.get(handle.createBlockData("minecraft:crimson_nylium"));
|
||||
case WARPED_FUNGUS:
|
||||
return MaterialSet.get(handle.createBlockData("minecraft:warped_nylium"));
|
||||
case BROWN_MUSHROOM:
|
||||
case RED_MUSHROOM:
|
||||
return MaterialSet.get(handle.createBlockData("minecraft:mycelium"), handle.createBlockData("minecraft:grass_block"),
|
||||
WorldHandle handle = platform.getWorldHandle();
|
||||
return switch(type) {
|
||||
case CRIMSON_FUNGUS -> MaterialSet.get(handle.createBlockData("minecraft:crimson_nylium"));
|
||||
case WARPED_FUNGUS -> MaterialSet.get(handle.createBlockData("minecraft:warped_nylium"));
|
||||
case BROWN_MUSHROOM, RED_MUSHROOM -> MaterialSet.get(handle.createBlockData("minecraft:mycelium"),
|
||||
handle.createBlockData("minecraft:grass_block"),
|
||||
handle.createBlockData("minecraft:podzol"));
|
||||
case CHORUS_PLANT -> MaterialSet.get(handle.createBlockData("minecraft:end_stone"));
|
||||
default -> MaterialSet.get(handle.createBlockData("minecraft:grass_block"), handle.createBlockData("minecraft:dirt"),
|
||||
handle.createBlockData("minecraft:podzol"));
|
||||
case CHORUS_PLANT:
|
||||
return MaterialSet.get(handle.createBlockData("minecraft:end_stone"));
|
||||
default:
|
||||
return MaterialSet.get(handle.createBlockData("minecraft:grass_block"), handle.createBlockData("minecraft:dirt"),
|
||||
handle.createBlockData("minecraft:podzol"));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("try")
|
||||
public boolean plant(Vector3 l, World world, Random r) {
|
||||
try(ProfileFrame ignore = main.getProfiler().profile("bukkit_tree:" + delegate.toString().toLowerCase(Locale.ROOT))) {
|
||||
try(ProfileFrame ignore = platform.getProfiler().profile("bukkit_tree:" + delegate.toString().toLowerCase(Locale.ROOT))) {
|
||||
return BukkitAdapter.adapt(world).generateTree(BukkitAdapter.adapt(l).toLocation(BukkitAdapter.adapt(world)), delegate);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-26
@@ -98,32 +98,15 @@ public class BukkitMobSpawner extends BukkitBlockEntity implements MobSpawner {
|
||||
public void applyState(String state) {
|
||||
SerialState.parse(state).forEach((k, v) -> {
|
||||
switch(k) {
|
||||
case "type":
|
||||
setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v.toUpperCase())));
|
||||
return;
|
||||
case "delay":
|
||||
setDelay(Integer.parseInt(v));
|
||||
return;
|
||||
case "min_delay":
|
||||
setMinSpawnDelay(Integer.parseInt(v));
|
||||
return;
|
||||
case "max_delay":
|
||||
setMaxSpawnDelay(Integer.parseInt(v));
|
||||
return;
|
||||
case "spawn_count":
|
||||
setSpawnCount(Integer.parseInt(v));
|
||||
return;
|
||||
case "spawn_range":
|
||||
setSpawnRange(Integer.parseInt(v));
|
||||
return;
|
||||
case "max_nearby":
|
||||
setMaxNearbyEntities(Integer.parseInt(v));
|
||||
return;
|
||||
case "required_player_range":
|
||||
setRequiredPlayerRange(Integer.parseInt(v));
|
||||
return;
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid property: " + k);
|
||||
case "type" -> setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v.toUpperCase())));
|
||||
case "delay" -> setDelay(Integer.parseInt(v));
|
||||
case "min_delay" -> setMinSpawnDelay(Integer.parseInt(v));
|
||||
case "max_delay" -> setMaxSpawnDelay(Integer.parseInt(v));
|
||||
case "spawn_count" -> setSpawnCount(Integer.parseInt(v));
|
||||
case "spawn_range" -> setSpawnRange(Integer.parseInt(v));
|
||||
case "max_nearby" -> setMaxNearbyEntities(Integer.parseInt(v));
|
||||
case "required_player_range" -> setRequiredPlayerRange(Integer.parseInt(v));
|
||||
default -> throw new IllegalArgumentException("Invalid property: " + k);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -35,12 +35,12 @@ import com.dfsek.terra.fabric.util.FabricUtil;
|
||||
@Author("Terra")
|
||||
@Version("1.0.0")
|
||||
public final class FabricAddon extends TerraAddon {
|
||||
private final PlatformImpl terraFabricPlugin;
|
||||
private static final Logger logger = LoggerFactory.getLogger(FabricAddon.class);
|
||||
|
||||
private final TerraPluginImpl terraFabricPlugin;
|
||||
private final Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> templates = new HashMap<>();
|
||||
|
||||
public FabricAddon(TerraPluginImpl terraFabricPlugin) {
|
||||
public FabricAddon(PlatformImpl terraFabricPlugin) {
|
||||
this.terraFabricPlugin = terraFabricPlugin;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,12 +22,12 @@ public class FabricEntryPoint implements ModInitializer {
|
||||
private static final Logger logger = LoggerFactory.getLogger(FabricEntryPoint.class);
|
||||
|
||||
public static final PopulatorFeature POPULATOR_FEATURE = new PopulatorFeature(DefaultFeatureConfig.CODEC);
|
||||
public static final ConfiguredFeature<?, ?> POPULATOR_CONFIGURED_FEATURE = POPULATOR_FEATURE.configure(FeatureConfig.DEFAULT)
|
||||
public static final ConfiguredFeature<?, ?> POPULATOR_CONFIGURED_FEATURE = POPULATOR_FEATURE.configure(FeatureConfig.DEFAULT).decorate(
|
||||
Decorator.NOPE.configure(NopeDecoratorConfig.INSTANCE));
|
||||
private static final PlatformImpl TERRA_PLUGIN = new PlatformImpl();
|
||||
.decorate(Decorator.NOPE.configure(
|
||||
NopeDecoratorConfig.INSTANCE));
|
||||
private static final TerraPluginImpl TERRA_PLUGIN = new TerraPluginImpl();
|
||||
|
||||
public static TerraPluginImpl getTerraPlugin() {
|
||||
public static PlatformImpl getTerraPlugin() {
|
||||
return TERRA_PLUGIN;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import java.io.File;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.dfsek.terra.AbstractTerraPlugin;
|
||||
import com.dfsek.terra.AbstractPlatform;
|
||||
import com.dfsek.terra.api.addon.TerraAddon;
|
||||
import com.dfsek.terra.api.handle.ItemHandle;
|
||||
import com.dfsek.terra.api.handle.WorldHandle;
|
||||
@@ -20,13 +20,13 @@ import com.dfsek.terra.fabric.handle.FabricWorldHandle;
|
||||
import com.dfsek.terra.fabric.util.ProtoBiome;
|
||||
|
||||
|
||||
public class TerraPluginImpl extends AbstractTerraPlugin {
|
||||
public class PlatformImpl extends AbstractPlatform {
|
||||
|
||||
private final ItemHandle itemHandle = new FabricItemHandle();
|
||||
private final WorldHandle worldHandle = new FabricWorldHandle();
|
||||
private final Lazy<File> dataFolder = Lazy.lazy(() -> new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra"));
|
||||
|
||||
public TerraPluginImpl() {
|
||||
public PlatformImpl() {
|
||||
load();
|
||||
}
|
||||
|
||||
+9
-26
@@ -97,32 +97,15 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity {
|
||||
public void terra$applyState(String state) {
|
||||
SerialState.parse(state).forEach((k, v) -> {
|
||||
switch(k) {
|
||||
case "type":
|
||||
terra$setSpawnedType(FabricEntryPoint.getTerraPlugin().getWorldHandle().getEntity(v));
|
||||
return;
|
||||
case "delay":
|
||||
terra$setDelay(Integer.parseInt(v));
|
||||
return;
|
||||
case "min_delay":
|
||||
terra$setMinSpawnDelay(Integer.parseInt(v));
|
||||
return;
|
||||
case "max_delay":
|
||||
terra$setMaxSpawnDelay(Integer.parseInt(v));
|
||||
return;
|
||||
case "spawn_count":
|
||||
terra$setSpawnCount(Integer.parseInt(v));
|
||||
return;
|
||||
case "spawn_range":
|
||||
terra$setSpawnRange(Integer.parseInt(v));
|
||||
return;
|
||||
case "max_nearby":
|
||||
terra$setMaxNearbyEntities(Integer.parseInt(v));
|
||||
return;
|
||||
case "required_player_range":
|
||||
terra$setRequiredPlayerRange(Integer.parseInt(v));
|
||||
return;
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid property: " + k);
|
||||
case "type" -> terra$setSpawnedType(FabricEntryPoint.getTerraPlugin().getWorldHandle().getEntity(v));
|
||||
case "delay" -> terra$setDelay(Integer.parseInt(v));
|
||||
case "min_delay" -> terra$setMinSpawnDelay(Integer.parseInt(v));
|
||||
case "max_delay" -> terra$setMaxSpawnDelay(Integer.parseInt(v));
|
||||
case "spawn_count" -> terra$setSpawnCount(Integer.parseInt(v));
|
||||
case "spawn_range" -> terra$setSpawnRange(Integer.parseInt(v));
|
||||
case "max_nearby" -> terra$setMaxNearbyEntities(Integer.parseInt(v));
|
||||
case "required_player_range" -> terra$setRequiredPlayerRange(Integer.parseInt(v));
|
||||
default -> throw new IllegalArgumentException("Invalid property: " + k);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ import com.dfsek.terra.fabric.block.FabricBlockState;
|
||||
public abstract class WorldChunkMixin {
|
||||
@Final
|
||||
@Shadow
|
||||
private net.minecraft.world.World world;
|
||||
net.minecraft.world.World world;
|
||||
|
||||
@Shadow
|
||||
public abstract net.minecraft.block.BlockState getBlockState(BlockPos pos);
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@ import java.util.Random;
|
||||
|
||||
import com.dfsek.terra.api.config.ConfigPack;
|
||||
import com.dfsek.terra.fabric.FabricEntryPoint;
|
||||
import com.dfsek.terra.fabric.TerraPluginImpl;
|
||||
import com.dfsek.terra.fabric.PlatformImpl;
|
||||
import com.dfsek.terra.fabric.event.BiomeRegistrationEvent;
|
||||
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||
import com.dfsek.terra.fabric.generation.TerraBiomeSource;
|
||||
@@ -37,7 +37,7 @@ public abstract class GeneratorOptionsMixin {
|
||||
return;
|
||||
}
|
||||
|
||||
TerraPluginImpl main = FabricEntryPoint.getTerraPlugin();
|
||||
PlatformImpl main = FabricEntryPoint.getTerraPlugin();
|
||||
|
||||
String prop = properties.get("level-type").toString().trim();
|
||||
if(prop.startsWith("Terra")) {
|
||||
|
||||
@@ -30,188 +30,119 @@ public final class FabricAdapter {
|
||||
}
|
||||
|
||||
public static Direction adapt(com.dfsek.terra.api.block.state.properties.enums.Direction direction) {
|
||||
switch(direction) {
|
||||
case SOUTH:
|
||||
return Direction.SOUTH;
|
||||
case NORTH:
|
||||
return Direction.NORTH;
|
||||
case WEST:
|
||||
return Direction.WEST;
|
||||
case EAST:
|
||||
return Direction.EAST;
|
||||
case UP:
|
||||
return Direction.UP;
|
||||
case DOWN:
|
||||
return Direction.DOWN;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
return switch(direction) {
|
||||
case SOUTH -> Direction.SOUTH;
|
||||
case NORTH -> Direction.NORTH;
|
||||
case WEST -> Direction.WEST;
|
||||
case EAST -> Direction.EAST;
|
||||
case UP -> Direction.UP;
|
||||
case DOWN -> Direction.DOWN;
|
||||
};
|
||||
}
|
||||
|
||||
public static com.dfsek.terra.api.block.state.properties.enums.Direction adapt(Direction direction) {
|
||||
switch(direction) {
|
||||
case SOUTH:
|
||||
return com.dfsek.terra.api.block.state.properties.enums.Direction.SOUTH;
|
||||
case NORTH:
|
||||
return com.dfsek.terra.api.block.state.properties.enums.Direction.NORTH;
|
||||
case WEST:
|
||||
return com.dfsek.terra.api.block.state.properties.enums.Direction.WEST;
|
||||
case EAST:
|
||||
return com.dfsek.terra.api.block.state.properties.enums.Direction.EAST;
|
||||
case UP:
|
||||
return com.dfsek.terra.api.block.state.properties.enums.Direction.UP;
|
||||
case DOWN:
|
||||
return com.dfsek.terra.api.block.state.properties.enums.Direction.DOWN;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
return switch(direction) {
|
||||
case SOUTH -> com.dfsek.terra.api.block.state.properties.enums.Direction.SOUTH;
|
||||
case NORTH -> com.dfsek.terra.api.block.state.properties.enums.Direction.NORTH;
|
||||
case WEST -> com.dfsek.terra.api.block.state.properties.enums.Direction.WEST;
|
||||
case EAST -> com.dfsek.terra.api.block.state.properties.enums.Direction.EAST;
|
||||
case UP -> com.dfsek.terra.api.block.state.properties.enums.Direction.UP;
|
||||
case DOWN -> com.dfsek.terra.api.block.state.properties.enums.Direction.DOWN;
|
||||
};
|
||||
}
|
||||
|
||||
public static WallHeight adapt(WallShape shape) {
|
||||
switch(shape) {
|
||||
case LOW:
|
||||
return WallHeight.LOW;
|
||||
case NONE:
|
||||
return WallHeight.NONE;
|
||||
case TALL:
|
||||
return WallHeight.TALL;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
return switch(shape) {
|
||||
case LOW -> WallHeight.LOW;
|
||||
case NONE -> WallHeight.NONE;
|
||||
case TALL -> WallHeight.TALL;
|
||||
};
|
||||
}
|
||||
|
||||
public static WallShape adapt(WallHeight shape) {
|
||||
switch(shape) {
|
||||
case LOW:
|
||||
return WallShape.LOW;
|
||||
case NONE:
|
||||
return WallShape.NONE;
|
||||
case TALL:
|
||||
return WallShape.TALL;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
return switch(shape) {
|
||||
case LOW -> WallShape.LOW;
|
||||
case NONE -> WallShape.NONE;
|
||||
case TALL -> WallShape.TALL;
|
||||
};
|
||||
}
|
||||
|
||||
public static RedstoneConnection adapt(WireConnection connection) {
|
||||
switch(connection) {
|
||||
case NONE:
|
||||
return RedstoneConnection.NONE;
|
||||
case UP:
|
||||
return RedstoneConnection.UP;
|
||||
case SIDE:
|
||||
return RedstoneConnection.SIDE;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
return switch(connection) {
|
||||
case NONE -> RedstoneConnection.NONE;
|
||||
case UP -> RedstoneConnection.UP;
|
||||
case SIDE -> RedstoneConnection.SIDE;
|
||||
};
|
||||
}
|
||||
|
||||
public static WireConnection adapt(RedstoneConnection connection) {
|
||||
switch(connection) {
|
||||
case NONE:
|
||||
return WireConnection.NONE;
|
||||
case UP:
|
||||
return WireConnection.UP;
|
||||
case SIDE:
|
||||
return WireConnection.SIDE;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
return switch(connection) {
|
||||
case NONE -> WireConnection.NONE;
|
||||
case UP -> WireConnection.UP;
|
||||
case SIDE -> WireConnection.SIDE;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public static Half adapt(BlockHalf half) {
|
||||
switch(half) {
|
||||
case BOTTOM:
|
||||
return Half.BOTTOM;
|
||||
case TOP:
|
||||
return Half.TOP;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(half) {
|
||||
case BOTTOM -> Half.BOTTOM;
|
||||
case TOP -> Half.TOP;
|
||||
};
|
||||
}
|
||||
|
||||
public static BlockHalf adapt(Half half) {
|
||||
switch(half) {
|
||||
case TOP:
|
||||
return BlockHalf.TOP;
|
||||
case BOTTOM:
|
||||
return BlockHalf.BOTTOM;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(half) {
|
||||
case TOP -> BlockHalf.TOP;
|
||||
case BOTTOM -> BlockHalf.BOTTOM;
|
||||
default -> throw new IllegalStateException();
|
||||
};
|
||||
}
|
||||
|
||||
public static RailShape adapt(net.minecraft.block.enums.RailShape railShape) {
|
||||
switch(railShape) {
|
||||
case EAST_WEST:
|
||||
return RailShape.EAST_WEST;
|
||||
case NORTH_EAST:
|
||||
return RailShape.NORTH_EAST;
|
||||
case NORTH_WEST:
|
||||
return RailShape.NORTH_WEST;
|
||||
case SOUTH_EAST:
|
||||
return RailShape.SOUTH_EAST;
|
||||
case SOUTH_WEST:
|
||||
return RailShape.SOUTH_WEST;
|
||||
case NORTH_SOUTH:
|
||||
return RailShape.NORTH_SOUTH;
|
||||
case ASCENDING_EAST:
|
||||
return RailShape.ASCENDING_EAST;
|
||||
case ASCENDING_NORTH:
|
||||
return RailShape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH:
|
||||
return RailShape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST:
|
||||
return RailShape.ASCENDING_WEST;
|
||||
}
|
||||
throw new IllegalStateException();
|
||||
return switch(railShape) {
|
||||
case EAST_WEST -> RailShape.EAST_WEST;
|
||||
case NORTH_EAST -> RailShape.NORTH_EAST;
|
||||
case NORTH_WEST -> RailShape.NORTH_WEST;
|
||||
case SOUTH_EAST -> RailShape.SOUTH_EAST;
|
||||
case SOUTH_WEST -> RailShape.SOUTH_WEST;
|
||||
case NORTH_SOUTH -> RailShape.NORTH_SOUTH;
|
||||
case ASCENDING_EAST -> RailShape.ASCENDING_EAST;
|
||||
case ASCENDING_NORTH -> RailShape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH -> RailShape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST -> RailShape.ASCENDING_WEST;
|
||||
};
|
||||
}
|
||||
|
||||
public static net.minecraft.block.enums.RailShape adapt(RailShape railShape) {
|
||||
switch(railShape) {
|
||||
case EAST_WEST:
|
||||
return net.minecraft.block.enums.RailShape.EAST_WEST;
|
||||
case NORTH_EAST:
|
||||
return net.minecraft.block.enums.RailShape.NORTH_EAST;
|
||||
case NORTH_WEST:
|
||||
return net.minecraft.block.enums.RailShape.NORTH_WEST;
|
||||
case SOUTH_EAST:
|
||||
return net.minecraft.block.enums.RailShape.SOUTH_EAST;
|
||||
case SOUTH_WEST:
|
||||
return net.minecraft.block.enums.RailShape.SOUTH_WEST;
|
||||
case NORTH_SOUTH:
|
||||
return net.minecraft.block.enums.RailShape.NORTH_SOUTH;
|
||||
case ASCENDING_EAST:
|
||||
return net.minecraft.block.enums.RailShape.ASCENDING_EAST;
|
||||
case ASCENDING_NORTH:
|
||||
return net.minecraft.block.enums.RailShape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH:
|
||||
return net.minecraft.block.enums.RailShape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST:
|
||||
return net.minecraft.block.enums.RailShape.ASCENDING_WEST;
|
||||
}
|
||||
throw new IllegalStateException();
|
||||
return switch(railShape) {
|
||||
case EAST_WEST -> net.minecraft.block.enums.RailShape.EAST_WEST;
|
||||
case NORTH_EAST -> net.minecraft.block.enums.RailShape.NORTH_EAST;
|
||||
case NORTH_WEST -> net.minecraft.block.enums.RailShape.NORTH_WEST;
|
||||
case SOUTH_EAST -> net.minecraft.block.enums.RailShape.SOUTH_EAST;
|
||||
case SOUTH_WEST -> net.minecraft.block.enums.RailShape.SOUTH_WEST;
|
||||
case NORTH_SOUTH -> net.minecraft.block.enums.RailShape.NORTH_SOUTH;
|
||||
case ASCENDING_EAST -> net.minecraft.block.enums.RailShape.ASCENDING_EAST;
|
||||
case ASCENDING_NORTH -> net.minecraft.block.enums.RailShape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH -> net.minecraft.block.enums.RailShape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST -> net.minecraft.block.enums.RailShape.ASCENDING_WEST;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public static Axis adapt(Direction.Axis axis) {
|
||||
switch(axis) {
|
||||
case X:
|
||||
return Axis.X;
|
||||
case Y:
|
||||
return Axis.Y;
|
||||
case Z:
|
||||
return Axis.Z;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(axis) {
|
||||
case X -> Axis.X;
|
||||
case Y -> Axis.Y;
|
||||
case Z -> Axis.Z;
|
||||
};
|
||||
}
|
||||
|
||||
public static Direction.Axis adapt(Axis axis) {
|
||||
switch(axis) {
|
||||
case Z:
|
||||
return Direction.Axis.Z;
|
||||
case Y:
|
||||
return Direction.Axis.Y;
|
||||
case X:
|
||||
return Direction.Axis.X;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
return switch(axis) {
|
||||
case Z -> Direction.Axis.Z;
|
||||
case Y -> Direction.Axis.Y;
|
||||
case X -> Direction.Axis.X;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -4,17 +4,18 @@ import org.spongepowered.api.Sponge;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import com.dfsek.terra.AbstractTerraPlugin;
|
||||
|
||||
import com.dfsek.terra.AbstractPlatform;
|
||||
import com.dfsek.terra.api.handle.ItemHandle;
|
||||
import com.dfsek.terra.api.handle.WorldHandle;
|
||||
import com.dfsek.terra.sponge.handle.SpongeWorldHandle;
|
||||
|
||||
|
||||
public class TerraPluginImpl extends AbstractTerraPlugin {
|
||||
public class PlatformImpl extends AbstractPlatform {
|
||||
private final TerraSpongePlugin plugin;
|
||||
private final SpongeWorldHandle worldHandle = new SpongeWorldHandle();
|
||||
|
||||
public TerraPluginImpl(TerraSpongePlugin plugin) {
|
||||
public PlatformImpl(TerraSpongePlugin plugin) {
|
||||
this.plugin = plugin;
|
||||
load();
|
||||
}
|
||||
@@ -9,12 +9,12 @@ import org.spongepowered.plugin.builtin.jvm.Plugin;
|
||||
@Plugin("terra")
|
||||
public class TerraSpongePlugin {
|
||||
private final PluginContainer plugin;
|
||||
private final TerraPluginImpl terraPlugin;
|
||||
private final PlatformImpl terraPlugin;
|
||||
|
||||
@Inject
|
||||
public TerraSpongePlugin(PluginContainer plugin, Game game) {
|
||||
this.plugin = plugin;
|
||||
this.terraPlugin = new TerraPluginImpl(this);
|
||||
this.terraPlugin = new PlatformImpl(this);
|
||||
game.eventManager().registerListeners(plugin, new SpongeListener(this));
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public class TerraSpongePlugin {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
public TerraPluginImpl getTerraPlugin() {
|
||||
public PlatformImpl getTerraPlugin() {
|
||||
return terraPlugin;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user