mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 14:50:56 +00:00
begin refactor
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.platform;
|
package com.dfsek.terra.api;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An interface that contains a platform delegate.
|
* An interface that contains a platform delegate.
|
||||||
+3
-3
@@ -2,9 +2,9 @@ package com.dfsek.terra.api;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.addons.TerraAddon;
|
import com.dfsek.terra.api.addons.TerraAddon;
|
||||||
import com.dfsek.terra.api.event.EventManager;
|
import com.dfsek.terra.api.event.EventManager;
|
||||||
import com.dfsek.terra.api.platform.handle.ItemHandle;
|
import com.dfsek.terra.api.handle.ItemHandle;
|
||||||
import com.dfsek.terra.api.platform.handle.WorldHandle;
|
import com.dfsek.terra.api.handle.WorldHandle;
|
||||||
import com.dfsek.terra.api.platform.world.World;
|
import com.dfsek.terra.api.world.World;
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.LockedRegistry;
|
import com.dfsek.terra.api.registry.LockedRegistry;
|
||||||
import com.dfsek.terra.api.util.JarUtil;
|
import com.dfsek.terra.api.util.JarUtil;
|
||||||
+4
-4
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.api.addons;
|
package com.dfsek.terra.api.addon;
|
||||||
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.addons.annotations.Addon;
|
import com.dfsek.terra.api.addon.annotations.Addon;
|
||||||
import com.dfsek.terra.api.addons.annotations.Author;
|
import com.dfsek.terra.api.addon.annotations.Author;
|
||||||
import com.dfsek.terra.api.addons.annotations.Version;
|
import com.dfsek.terra.api.addon.annotations.Version;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.addons.annotations;
|
package com.dfsek.terra.api.addon.annotations;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.addons.annotations;
|
package com.dfsek.terra.api.addon.annotations;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.addons.annotations;
|
package com.dfsek.terra.api.addon.annotations;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.addons.annotations;
|
package com.dfsek.terra.api.addon.annotations;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.dfsek.terra.api.block;
|
||||||
|
|
||||||
|
public enum Axis {
|
||||||
|
X, Y, Z
|
||||||
|
}
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.api.platform.block;
|
package com.dfsek.terra.api.block;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.vector.Location;
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
import com.dfsek.terra.api.platform.block.state.BlockState;
|
import com.dfsek.terra.api.block.state.BlockState;
|
||||||
|
|
||||||
public interface Block extends Handle {
|
public interface Block extends Handle {
|
||||||
void setBlockData(BlockData data, boolean physics);
|
void setBlockData(BlockData data, boolean physics);
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block;
|
package com.dfsek.terra.api.block;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
public interface BlockData extends Cloneable, Handle {
|
public interface BlockData extends Cloneable, Handle {
|
||||||
|
|
||||||
+4
-3
@@ -1,6 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.block;
|
package com.dfsek.terra.api.block;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.vector.Vector3;
|
||||||
|
import com.dfsek.terra.api.vector.Vector3Impl;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public enum BlockFace {
|
public enum BlockFace {
|
||||||
@@ -74,7 +75,7 @@ public enum BlockFace {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Vector3 getDirection() {
|
public Vector3 getDirection() {
|
||||||
Vector3 direction = new Vector3(modX, modY, modZ);
|
Vector3 direction = new Vector3Impl(modX, modY, modZ);
|
||||||
if(modX != 0 || modY != 0 || modZ != 0) {
|
if(modX != 0 || modY != 0 || modZ != 0) {
|
||||||
direction.normalize();
|
direction.normalize();
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block;
|
package com.dfsek.terra.api.block;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
public interface BlockType extends Handle {
|
public interface BlockType extends Handle {
|
||||||
BlockData getDefaultData();
|
BlockData getDefaultData();
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
|
||||||
public interface AnaloguePowerable extends BlockData {
|
public interface AnaloguePowerable extends BlockData {
|
||||||
int getMaximumPower();
|
int getMaximumPower();
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
|
||||||
public interface Bisected extends BlockData {
|
public interface Bisected extends BlockData {
|
||||||
Half getHalf();
|
Half getHalf();
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
import com.dfsek.terra.api.block.BlockFace;
|
||||||
|
|
||||||
|
public interface Directional extends BlockData {
|
||||||
|
BlockFace getFacing();
|
||||||
|
|
||||||
|
void setFacing(BlockFace facing);
|
||||||
|
}
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
import com.dfsek.terra.api.block.BlockFace;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.Axis;
|
import com.dfsek.terra.api.block.Axis;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
|
||||||
public interface Rail extends BlockData {
|
public interface Rail extends BlockData {
|
||||||
Shape getShape();
|
Shape getShape();
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
import com.dfsek.terra.api.block.BlockFace;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
import com.dfsek.terra.api.block.BlockFace;
|
||||||
|
|
||||||
|
public interface Rotatable extends BlockData {
|
||||||
|
BlockFace getRotation();
|
||||||
|
|
||||||
|
void setRotation(BlockFace face);
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
public interface Slab extends Waterlogged {
|
public interface Slab extends Waterlogged {
|
||||||
Type getType();
|
Type getType();
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
public interface Stairs extends Waterlogged, Directional, Bisected {
|
public interface Stairs extends Waterlogged, Directional, Bisected {
|
||||||
Shape getShape();
|
Shape getShape();
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
import com.dfsek.terra.api.block.BlockFace;
|
||||||
|
|
||||||
public interface Wall extends BlockData, Waterlogged {
|
public interface Wall extends BlockData, Waterlogged {
|
||||||
boolean isUp();
|
boolean isUp();
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block.data;
|
package com.dfsek.terra.api.block.data;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
|
||||||
public interface Waterlogged extends BlockData {
|
public interface Waterlogged extends BlockData {
|
||||||
boolean isWaterlogged();
|
boolean isWaterlogged();
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.dfsek.terra.api.block.data.properties;
|
||||||
|
|
||||||
|
public interface Property<T> {
|
||||||
|
|
||||||
|
}
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.api.platform.block.state;
|
package com.dfsek.terra.api.block.state;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
import com.dfsek.terra.api.platform.block.Block;
|
import com.dfsek.terra.api.block.Block;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
|
|
||||||
public interface BlockState extends Handle {
|
public interface BlockState extends Handle {
|
||||||
Block getBlock();
|
Block getBlock();
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.dfsek.terra.api.block.state;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.inventory.BlockInventoryHolder;
|
||||||
|
|
||||||
|
public interface Container extends BlockState, BlockInventoryHolder {
|
||||||
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.block.state;
|
package com.dfsek.terra.api.block.state;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.entity.EntityType;
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public interface MobSpawner extends BlockState {
|
public interface MobSpawner extends BlockState {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.platform.block.state;
|
package com.dfsek.terra.api.block.state;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.platform.block.state;
|
package com.dfsek.terra.api.block.state;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
+3
-1
@@ -1,4 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform;
|
package com.dfsek.terra.api.entity;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
public interface CommandSender extends Handle {
|
public interface CommandSender extends Handle {
|
||||||
void sendMessage(String message);
|
void sendMessage(String message);
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.dfsek.terra.api.entity;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.vector.Location;
|
||||||
|
import com.dfsek.terra.api.Handle;
|
||||||
|
import com.dfsek.terra.api.world.World;
|
||||||
|
|
||||||
|
public interface Entity extends Handle, CommandSender {
|
||||||
|
Location getLocation();
|
||||||
|
|
||||||
|
void setLocation(Location location);
|
||||||
|
|
||||||
|
World getWorld();
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.dfsek.terra.api.entity;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
|
public interface EntityType extends Handle {
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package com.dfsek.terra.api.entity;
|
||||||
|
|
||||||
|
public interface Player extends Entity {
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.event;
|
package com.dfsek.terra.api.event;
|
||||||
|
|
||||||
import com.dfsek.terra.api.addons.TerraAddon;
|
import com.dfsek.terra.api.addon.TerraAddon;
|
||||||
import com.dfsek.terra.api.event.events.Event;
|
import com.dfsek.terra.api.event.events.Event;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -2,7 +2,7 @@ package com.dfsek.terra.api.event.events.world.generation;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.event.events.PackEvent;
|
import com.dfsek.terra.api.event.events.PackEvent;
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
||||||
import com.dfsek.terra.api.platform.entity.Entity;
|
import com.dfsek.terra.api.entity.Entity;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedEntity;
|
||||||
import com.dfsek.terra.config.pack.ConfigPack;
|
import com.dfsek.terra.config.pack.ConfigPack;
|
||||||
|
|
||||||
+2
-2
@@ -3,8 +3,8 @@ package com.dfsek.terra.api.event.events.world.generation;
|
|||||||
import com.dfsek.terra.api.event.events.AbstractCancellable;
|
import com.dfsek.terra.api.event.events.AbstractCancellable;
|
||||||
import com.dfsek.terra.api.event.events.Cancellable;
|
import com.dfsek.terra.api.event.events.Cancellable;
|
||||||
import com.dfsek.terra.api.event.events.PackEvent;
|
import com.dfsek.terra.api.event.events.PackEvent;
|
||||||
import com.dfsek.terra.api.platform.block.Block;
|
import com.dfsek.terra.api.block.Block;
|
||||||
import com.dfsek.terra.api.platform.block.state.Container;
|
import com.dfsek.terra.api.block.state.Container;
|
||||||
import com.dfsek.terra.api.structures.loot.LootTable;
|
import com.dfsek.terra.api.structures.loot.LootTable;
|
||||||
import com.dfsek.terra.api.structures.script.StructureScript;
|
import com.dfsek.terra.api.structures.script.StructureScript;
|
||||||
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication;
|
import com.dfsek.terra.api.structures.structure.buffer.items.BufferedLootApplication;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.handle;
|
package com.dfsek.terra.api.handle;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.inventory.Item;
|
import com.dfsek.terra.api.inventory.Item;
|
||||||
import com.dfsek.terra.api.platform.inventory.item.Enchantment;
|
import com.dfsek.terra.api.inventory.item.Enchantment;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
+5
-5
@@ -1,9 +1,9 @@
|
|||||||
package com.dfsek.terra.api.platform.handle;
|
package com.dfsek.terra.api.handle;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.vector.Location;
|
||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.entity.EntityType;
|
import com.dfsek.terra.api.entity.EntityType;
|
||||||
import com.dfsek.terra.api.platform.entity.Player;
|
import com.dfsek.terra.api.entity.Player;
|
||||||
import com.dfsek.terra.api.util.generic.pair.Pair;
|
import com.dfsek.terra.api.util.generic.pair.Pair;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.dfsek.terra.api.injection;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.injection.annotations.Inject;
|
||||||
|
import com.dfsek.terra.api.injection.exception.InjectionException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dynamic dependency injector.
|
||||||
|
* <p>
|
||||||
|
* Stores an object to inject, and injects it into objects passed to {@link #inject(Object)}.
|
||||||
|
*
|
||||||
|
* @param <T> Type of object to inject.
|
||||||
|
*/
|
||||||
|
public interface Injector<T> {
|
||||||
|
/**
|
||||||
|
* Add an explicit class as a target. Useful for applications where subclasses may cause issues with DI.
|
||||||
|
*
|
||||||
|
* @param target Target class type.
|
||||||
|
*/
|
||||||
|
void addExplicitTarget(Class<? extends T> target);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inject the stored object into an object.
|
||||||
|
* <p>
|
||||||
|
* Injects the stored object into any non-static, non-final fields
|
||||||
|
* annotated with {@link Inject},
|
||||||
|
* with type matching the stored object or any explicit targets
|
||||||
|
* ({@link #addExplicitTarget(Class)}.
|
||||||
|
*
|
||||||
|
* @param object Object to inject into
|
||||||
|
* @throws InjectionException If:
|
||||||
|
* <ul>
|
||||||
|
* <li>Matching field annotated with {@link Inject} is final</li>
|
||||||
|
* <li>Matching field annotated with {@link Inject} is static</li>
|
||||||
|
* <li>A reflective access exception occurs</li>
|
||||||
|
* </ul>
|
||||||
|
*/
|
||||||
|
void inject(Object object) throws InjectionException;
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.dfsek.terra.api.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.block.Block;
|
||||||
|
|
||||||
|
public interface BlockInventoryHolder extends InventoryHolder {
|
||||||
|
Block getBlock();
|
||||||
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.inventory;
|
package com.dfsek.terra.api.inventory;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
public interface Inventory extends Handle {
|
public interface Inventory extends Handle {
|
||||||
int getSize();
|
int getSize();
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.dfsek.terra.api.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
|
public interface InventoryHolder extends Handle {
|
||||||
|
Inventory getInventory();
|
||||||
|
}
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.inventory;
|
package com.dfsek.terra.api.inventory;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An inventory item.
|
* An inventory item.
|
||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
package com.dfsek.terra.api.platform.inventory;
|
package com.dfsek.terra.api.inventory;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
import com.dfsek.terra.api.platform.inventory.item.Damageable;
|
import com.dfsek.terra.api.inventory.item.Damageable;
|
||||||
import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
|
import com.dfsek.terra.api.inventory.item.ItemMeta;
|
||||||
|
|
||||||
public interface ItemStack extends Handle {
|
public interface ItemStack extends Handle {
|
||||||
int getAmount();
|
int getAmount();
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.inventory.item;
|
package com.dfsek.terra.api.inventory.item;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
public interface Damageable extends Handle {
|
public interface Damageable extends Handle {
|
||||||
int getDamage();
|
int getDamage();
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.platform.inventory.item;
|
package com.dfsek.terra.api.inventory.item;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
import com.dfsek.terra.api.inventory.ItemStack;
|
||||||
|
|
||||||
public interface Enchantment extends Handle {
|
public interface Enchantment extends Handle {
|
||||||
boolean canEnchantItem(ItemStack itemStack);
|
boolean canEnchantItem(ItemStack itemStack);
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.platform.inventory.item;
|
package com.dfsek.terra.api.inventory.item;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.Handle;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise;
|
package com.dfsek.terra.api.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.normalizer;
|
package com.dfsek.terra.api.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
public class ClampNormalizer extends Normalizer {
|
public class ClampNormalizer extends Normalizer {
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.normalizer;
|
package com.dfsek.terra.api.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normalizer to linearly scale data's range.
|
* Normalizer to linearly scale data's range.
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.math.noise.normalizer;
|
package com.dfsek.terra.api.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.MathUtil;
|
import com.dfsek.terra.api.math.MathUtil;
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.normalizer;
|
package com.dfsek.terra.api.noise.normalizer;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public abstract class Normalizer implements NoiseSampler {
|
public abstract class Normalizer implements NoiseSampler {
|
||||||
private final NoiseSampler sampler;
|
private final NoiseSampler sampler;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers;
|
package com.dfsek.terra.api.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public class DomainWarpedSampler implements NoiseSampler {
|
public class DomainWarpedSampler implements NoiseSampler {
|
||||||
private final NoiseSampler function;
|
private final NoiseSampler function;
|
||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers;
|
package com.dfsek.terra.api.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.paralithic.Expression;
|
import com.dfsek.paralithic.Expression;
|
||||||
import com.dfsek.paralithic.eval.parser.Parser;
|
import com.dfsek.paralithic.eval.parser.Parser;
|
||||||
import com.dfsek.paralithic.eval.parser.Scope;
|
import com.dfsek.paralithic.eval.parser.Scope;
|
||||||
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
import com.dfsek.paralithic.eval.tokenizer.ParseException;
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
import com.dfsek.terra.api.math.paralithic.defined.UserDefinedFunction;
|
||||||
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;
|
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction2;
|
||||||
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3;
|
import com.dfsek.terra.api.math.paralithic.noise.NoiseFunction3;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers;
|
package com.dfsek.terra.api.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers;
|
package com.dfsek.terra.api.noise.samplers;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public class KernelSampler implements NoiseSampler {
|
public class KernelSampler implements NoiseSampler {
|
||||||
private final double[][] kernel;
|
private final double[][] kernel;
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
package com.dfsek.terra.api.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
import com.dfsek.terra.api.noise.samplers.noise.simplex.OpenSimplex2Sampler;
|
||||||
import com.dfsek.terra.api.math.vector.Vector2;
|
import com.dfsek.terra.api.math.vector.Vector2;
|
||||||
import com.dfsek.terra.api.math.vector.Vector3;
|
import com.dfsek.terra.api.math.vector.Vector3;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
package com.dfsek.terra.api.noise.samplers.noise;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sampler3D implementation that returns a constant.
|
* Sampler3D implementation that returns a constant.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
package com.dfsek.terra.api.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.paralithic.Expression;
|
import com.dfsek.paralithic.Expression;
|
||||||
import com.dfsek.paralithic.eval.parser.Parser;
|
import com.dfsek.paralithic.eval.parser.Parser;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
package com.dfsek.terra.api.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.random.WhiteNoiseSampler;
|
import com.dfsek.terra.api.noise.samplers.noise.random.WhiteNoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
public class GaborNoiseSampler extends NoiseFunction {
|
public class GaborNoiseSampler extends NoiseFunction {
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise;
|
package com.dfsek.terra.api.noise.samplers.noise;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
|
|
||||||
@SuppressWarnings("ManualMinMaxCalculation")
|
@SuppressWarnings("ManualMinMaxCalculation")
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public class BrownianMotionSampler extends FractalNoiseFunction {
|
public class BrownianMotionSampler extends FractalNoiseFunction {
|
||||||
public BrownianMotionSampler(int seed, NoiseSampler input) {
|
public BrownianMotionSampler(int seed, NoiseSampler input) {
|
||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
public abstract class FractalNoiseFunction extends NoiseFunction {
|
public abstract class FractalNoiseFunction extends NoiseFunction {
|
||||||
protected final NoiseSampler input;
|
protected final NoiseSampler input;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public class PingPongSampler extends FractalNoiseFunction {
|
public class PingPongSampler extends FractalNoiseFunction {
|
||||||
private double pingPongStrength = 2.0;
|
private double pingPongStrength = 2.0;
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.fractal;
|
package com.dfsek.terra.api.noise.samplers.noise.fractal;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
public class RidgedFractalSampler extends FractalNoiseFunction {
|
public class RidgedFractalSampler extends FractalNoiseFunction {
|
||||||
|
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.random;
|
package com.dfsek.terra.api.noise.samplers.noise.random;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide random, normally distributed (Gaussian) noise.
|
* NoiseSampler implementation to provide random, normally distributed (Gaussian) noise.
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.random;
|
package com.dfsek.terra.api.noise.samplers.noise.random;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to produce random, uniformly distributed (white) noise.
|
* NoiseSampler implementation to produce random, uniformly distributed (white) noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide OpenSimplex2 (Smooth Variant) noise.
|
* NoiseSampler implementation to provide OpenSimplex2 (Smooth Variant) noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide OpenSimplex2 noise.
|
* NoiseSampler implementation to provide OpenSimplex2 noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoiseSampler implementation to provide Perlin Noise.
|
* NoiseSampler implementation to provide Perlin Noise.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
public class SimplexSampler extends SimplexStyleSampler {
|
public class SimplexSampler extends SimplexStyleSampler {
|
||||||
private static final Double2[] GRAD_2D = {
|
private static final Double2[] GRAD_2D = {
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.simplex;
|
package com.dfsek.terra.api.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract NoiseSampler implementation for simplex-style noise functions.
|
* Abstract NoiseSampler implementation for simplex-style noise functions.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.value;
|
package com.dfsek.terra.api.noise.samplers.noise.value;
|
||||||
|
|
||||||
public class ValueCubicSampler extends ValueStyleNoise {
|
public class ValueCubicSampler extends ValueStyleNoise {
|
||||||
public ValueCubicSampler(int seed) {
|
public ValueCubicSampler(int seed) {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.value;
|
package com.dfsek.terra.api.noise.samplers.noise.value;
|
||||||
|
|
||||||
public class ValueSampler extends ValueStyleNoise {
|
public class ValueSampler extends ValueStyleNoise {
|
||||||
public ValueSampler(int seed) {
|
public ValueSampler(int seed) {
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
package com.dfsek.terra.api.math.noise.samplers.noise.value;
|
package com.dfsek.terra.api.noise.samplers.noise.value;
|
||||||
|
|
||||||
import com.dfsek.terra.api.math.noise.samplers.noise.NoiseFunction;
|
import com.dfsek.terra.api.noise.samplers.noise.NoiseFunction;
|
||||||
|
|
||||||
public abstract class ValueStyleNoise extends NoiseFunction {
|
public abstract class ValueStyleNoise extends NoiseFunction {
|
||||||
public ValueStyleNoise(int seed) {
|
public ValueStyleNoise(int seed) {
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.dfsek.terra.api.registry;
|
||||||
|
|
||||||
|
public interface CheckedRegistry<T> extends Registry<T> {
|
||||||
|
/**
|
||||||
|
* Add a value to this registry, checking whether it is present first.
|
||||||
|
*
|
||||||
|
* @param identifier Identifier to assign value.
|
||||||
|
* @param value Value to add.
|
||||||
|
* @throws DuplicateEntryException If an entry with the same identifier is already present.
|
||||||
|
*/
|
||||||
|
void add(String identifier, T value) throws DuplicateEntryException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a value to the registry, without checking presence beforehand.
|
||||||
|
* <p>
|
||||||
|
* Use of this method is generally discouraged, as it is bad practice to overwrite registry values.
|
||||||
|
*
|
||||||
|
* @param identifier Identifier to assign value.
|
||||||
|
* @param value Value to add.
|
||||||
|
* @deprecated Use of {@link #add(String, Object)} is encouraged.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
void addUnchecked(String identifier, T value);
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.registry.exception;
|
package com.dfsek.terra.api.registry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Thrown when a duplicate entry is found in a registry.
|
* Thrown when a duplicate entry is found in a registry.
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.dfsek.terra.api.registry;
|
||||||
|
|
||||||
|
public interface OpenRegistry<T> extends Registry<T> {
|
||||||
|
/**
|
||||||
|
* Add a value to this registry.
|
||||||
|
*
|
||||||
|
* @param identifier Identifier to assign value.
|
||||||
|
* @param value Value to add.
|
||||||
|
*/
|
||||||
|
boolean add(String identifier, T value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a value to this registry, checking whether it is present first.
|
||||||
|
*
|
||||||
|
* @param identifier Identifier to assign value.
|
||||||
|
* @param value Value to add.
|
||||||
|
* @throws DuplicateEntryException If an entry with the same identifier is already present.
|
||||||
|
*/
|
||||||
|
void addChecked(String identifier, T value) throws DuplicateEntryException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears all entries from the registry.
|
||||||
|
*/
|
||||||
|
void clear();
|
||||||
|
}
|
||||||
+2
@@ -1,5 +1,7 @@
|
|||||||
package com.dfsek.terra.api.transform;
|
package com.dfsek.terra.api.transform;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.transform.exception.TransformException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface to transform data from one type to another.
|
* Interface to transform data from one type to another.
|
||||||
*/
|
*/
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.dfsek.terra.api.transform;
|
||||||
|
|
||||||
|
public interface Transformer<F, T> {
|
||||||
|
/**
|
||||||
|
* Translate data from {@code from} type to {@code to} type.
|
||||||
|
*
|
||||||
|
* @param from Data to translate
|
||||||
|
* @return Result
|
||||||
|
*/
|
||||||
|
T translate(F from);
|
||||||
|
}
|
||||||
+2
@@ -1,6 +1,8 @@
|
|||||||
package com.dfsek.terra.api.transform;
|
package com.dfsek.terra.api.transform;
|
||||||
|
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.transform.exception.TransformException;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public interface Validator<T> {
|
public interface Validator<T> {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.transform;
|
package com.dfsek.terra.api.transform.exception;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.GlueList;
|
import com.dfsek.terra.api.util.GlueList;
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.transform;
|
package com.dfsek.terra.api.transform.exception;
|
||||||
|
|
||||||
public class TransformException extends Exception {
|
public class TransformException extends Exception {
|
||||||
private static final long serialVersionUID = -6661338369581162084L;
|
private static final long serialVersionUID = -6661338369581162084L;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.api.math;
|
package com.dfsek.terra.api.util;
|
||||||
|
|
||||||
import com.dfsek.terra.api.util.FastRandom;
|
import com.dfsek.terra.api.util.FastRandom;
|
||||||
import com.dfsek.terra.world.generation.math.samplers.Sampler;
|
import com.dfsek.terra.world.generation.math.samplers.Sampler;
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user