put vector3 in class in API

This commit is contained in:
dfsek
2021-06-30 10:39:03 -07:00
parent abd3683a49
commit bf5e8d903c
107 changed files with 552 additions and 544 deletions

View File

@@ -4,7 +4,6 @@ import com.dfsek.terra.api.entity.Player;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.vector.Vector3Impl;
import org.bukkit.Location;
public class BukkitPlayer implements Player {
@@ -22,7 +21,7 @@ public class BukkitPlayer implements Player {
@Override
public Vector3 position() {
org.bukkit.Location bukkit = delegate.getLocation();
return new Vector3Impl(bukkit.getX(), bukkit.getY(), bukkit.getZ());
return new Vector3(bukkit.getX(), bukkit.getY(), bukkit.getZ());
}
@Override

View File

@@ -9,7 +9,6 @@ import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.Tree;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.vector.Vector3Impl;
import org.bukkit.Material;
import org.bukkit.TreeType;
import org.bukkit.block.Block;
@@ -54,7 +53,7 @@ public class CommonListener implements Listener {
block.setType(Material.AIR);
Tree tree = c.getRegistry(Tree.class).get(TREE_TYPE_STRING_TRANSFORMER.translate(e.getSpecies()));
org.bukkit.Location location = e.getLocation();
if(!tree.plant(new Vector3Impl(location.getX(), location.getY(), location.getZ()), BukkitAdapter.adapt(e.getWorld()), new FastRandom()))
if(!tree.plant(new Vector3(location.getX(), location.getY(), location.getZ()), BukkitAdapter.adapt(e.getWorld()), new FastRandom()))
block.setBlockData(data);
}
}

View File

@@ -22,7 +22,6 @@ import com.dfsek.terra.bukkit.world.block.BukkitBlockTypeAndItem;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState;
import com.dfsek.terra.bukkit.world.inventory.BukkitItemStack;
import com.dfsek.terra.bukkit.world.inventory.meta.BukkitEnchantment;
import com.dfsek.terra.vector.Vector3Impl;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.TreeType;
@@ -185,7 +184,7 @@ public final class BukkitAdapter {
}
public static Vector3 adapt(Location location) {
return new Vector3Impl(location.getX(), location.getY(), location.getZ());
return new Vector3(location.getX(), location.getY(), location.getZ());
}
public static Vector adapt(Vector3 vector3) {
@@ -193,7 +192,7 @@ public final class BukkitAdapter {
}
public static Vector3 adapt(Vector vector) {
return new Vector3Impl(vector.getX(), vector.getY(), vector.getZ());
return new Vector3(vector.getX(), vector.getY(), vector.getZ());
}
public static CommandSender adapt(org.bukkit.command.CommandSender sender) {

View File

@@ -1,8 +1,11 @@
package com.dfsek.terra.fabric;
import com.dfsek.tectonic.abstraction.TemplateProvider;
import com.dfsek.tectonic.exception.ConfigException;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.Logger;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addon.TerraAddon;
@@ -77,8 +80,13 @@ import org.apache.logging.log4j.LogManager;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Supplier;
public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
@@ -88,6 +96,9 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
private static TerraFabricPlugin instance;
private final Map<DimensionType, Pair<ServerWorld, TerraWorld>> worldMap = new HashMap<>();
private final Map<Type, TypeLoader<?>> loaders = new HashMap<>();
private final Map<Type, TemplateProvider<ObjectTemplate<?>>> objectLoaders = new HashMap<>();
public Map<DimensionType, Pair<ServerWorld, TerraWorld>> getWorldMap() {
return worldMap;
}
@@ -231,6 +242,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
return debugLogger;
}
@SuppressWarnings("unchecked")
@Override
public void register(TypeRegistry registry) {
genericLoaders.register(registry);
@@ -242,6 +254,8 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
if(identifier == null) throw new LoadException("Invalid identifier: " + o);
return identifier;
});
loaders.forEach(registry::registerLoader);
objectLoaders.forEach((t, l) -> registry.registerLoader(t, (TemplateProvider<ObjectTemplate<Object>>) ((Object) l)));
}
@Override
@@ -290,6 +304,19 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
return profiler;
}
@Override
public <T> TerraFabricPlugin applyLoader(Type type, TypeLoader<T> loader) {
loaders.put(type, loader);
return this;
}
@SuppressWarnings("unchecked")
@Override
public <T> TerraFabricPlugin applyLoader(Type type, TemplateProvider<ObjectTemplate<T>> loader) {
objectLoaders.put(type, (TemplateProvider<ObjectTemplate<?>>) ((Object) loader));
return this;
}
@Addon("Terra-Fabric")
@Author("Terra")
@Version("1.0.0")

View File

@@ -7,7 +7,6 @@ import com.dfsek.terra.api.block.state.properties.enums.RedstoneConnection;
import com.dfsek.terra.api.block.state.properties.enums.WallHeight;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.fabric.block.FabricBlockState;
import com.dfsek.terra.vector.Vector3Impl;
import net.minecraft.block.BlockState;
import net.minecraft.block.enums.BlockHalf;
import net.minecraft.block.enums.WallShape;
@@ -21,7 +20,7 @@ public final class FabricAdapter {
}
public static Vector3 adapt(BlockPos pos) {
return new Vector3Impl(pos.getX(), pos.getY(), pos.getZ());
return new Vector3(pos.getX(), pos.getY(), pos.getZ());
}
public static FabricBlockState adapt(BlockState state) {

View File

@@ -3,7 +3,6 @@ package com.dfsek.terra.fabric.util;
import com.dfsek.terra.api.entity.Player;
import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.vector.Vector3Impl;
import com.sk89q.worldedit.IncompleteRegionException;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.math.BlockVector3;
@@ -20,8 +19,8 @@ public final class WorldEditUtil {
.getSelection(com.sk89q.worldedit.fabric.FabricAdapter.adapt((World) player.world()));
BlockVector3 min = selection.getMinimumPoint();
BlockVector3 max = selection.getMaximumPoint();
Vector3 l1 = new Vector3Impl(min.getBlockX(), min.getBlockY(), min.getBlockZ());
Vector3 l2 = new Vector3Impl(max.getBlockX(), max.getBlockY(), max.getBlockZ());
Vector3 l1 = new Vector3(min.getBlockX(), min.getBlockY(), min.getBlockZ());
Vector3 l2 = new Vector3(max.getBlockX(), max.getBlockY(), max.getBlockZ());
return Pair.of(l1, l2);
} catch(IncompleteRegionException e) {
throw new IllegalStateException("No selection has been made", e);