From 2402b210e8edd59b5575069ced0a9be963f5e17c Mon Sep 17 00:00:00 2001 From: SD Date: Tue, 3 Nov 2020 10:36:57 +0530 Subject: [PATCH] Fix generics Changes to be committed: modified: src/main/java/org/dimdev/dimdoors/rift/targets/EscapeTarget.java deleted: src/main/java/org/dimdev/dimdoors/rift/targets/FlowTracker.java modified: src/main/java/org/dimdev/dimdoors/rift/targets/LimboTarget.java modified: src/main/java/org/dimdev/dimdoors/rift/targets/PublicPocketTarget.java modified: src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java --- .../dimdoors/rift/targets/EscapeTarget.java | 10 +++---- .../dimdoors/rift/targets/FlowTracker.java | 28 ------------------- .../dimdoors/rift/targets/LimboTarget.java | 5 ++-- .../rift/targets/PublicPocketTarget.java | 8 ++---- .../dimdoors/rift/targets/VirtualTarget.java | 27 ++++++++++-------- 5 files changed, 25 insertions(+), 53 deletions(-) delete mode 100644 src/main/java/org/dimdev/dimdoors/rift/targets/FlowTracker.java diff --git a/src/main/java/org/dimdev/dimdoors/rift/targets/EscapeTarget.java b/src/main/java/org/dimdev/dimdoors/rift/targets/EscapeTarget.java index cbfd3a97..28105cfc 100644 --- a/src/main/java/org/dimdev/dimdoors/rift/targets/EscapeTarget.java +++ b/src/main/java/org/dimdev/dimdoors/rift/targets/EscapeTarget.java @@ -18,13 +18,11 @@ import net.minecraft.text.TranslatableText; import static org.dimdev.dimdoors.util.EntityUtils.chat; public class EscapeTarget extends VirtualTarget implements EntityTarget { // TODO: createRift option - public static final Codec CODEC = RecordCodecBuilder.create(instance -> { - return instance.group( - Codec.BOOL.fieldOf("canEscapeLimbo").forGetter(target -> target.canEscapeLimbo) - ).apply(instance, EscapeTarget::new); - }); + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Codec.BOOL.fieldOf("canEscapeLimbo").forGetter(target -> target.canEscapeLimbo) + ).apply(instance, EscapeTarget::new)); - protected boolean canEscapeLimbo = false; + protected boolean canEscapeLimbo; public EscapeTarget(boolean canEscapeLimbo) { this.canEscapeLimbo = canEscapeLimbo; diff --git a/src/main/java/org/dimdev/dimdoors/rift/targets/FlowTracker.java b/src/main/java/org/dimdev/dimdoors/rift/targets/FlowTracker.java deleted file mode 100644 index 8ab20208..00000000 --- a/src/main/java/org/dimdev/dimdoors/rift/targets/FlowTracker.java +++ /dev/null @@ -1,28 +0,0 @@ -//package org.dimdev.dimdoors.rift.targets; -// -//import java.util.HashMap; -//import java.util.Map; -// -//import org.dimdev.dimdoors.util.AnnotatedNbt; -// -//import net.minecraft.nbt.CompoundTag; -//import net.minecraft.util.math.Direction; -// -///** -// * Helps flow (fluid, redstone, power) senders to keep track of flow received by the -// * target rift. -// */ -// -//public class FlowTracker { // TODO -// //@Saved public Map> fluids = new HashMap<>(); -// public Map redstone = new HashMap<>(); -// public Map power = new HashMap<>(); -// -// public void fromTag(CompoundTag nbt) { -// AnnotatedNbt.load(this, nbt); -// } -// -// public CompoundTag toTag(CompoundTag nbt) { -// return AnnotatedNbt.serialize(this); -// } -//} diff --git a/src/main/java/org/dimdev/dimdoors/rift/targets/LimboTarget.java b/src/main/java/org/dimdev/dimdoors/rift/targets/LimboTarget.java index 98391c85..6bcd839e 100644 --- a/src/main/java/org/dimdev/dimdoors/rift/targets/LimboTarget.java +++ b/src/main/java/org/dimdev/dimdoors/rift/targets/LimboTarget.java @@ -5,9 +5,10 @@ import com.mojang.serialization.Codec; import net.minecraft.entity.Entity; public class LimboTarget extends VirtualTarget implements EntityTarget { - public static final Codec CODEC = Codec.unit(LimboTarget::new); + public static final LimboTarget INSTANCE = new LimboTarget(); + public static final Codec CODEC = Codec.unit(INSTANCE); - public LimboTarget() { + private LimboTarget() { } @Override diff --git a/src/main/java/org/dimdev/dimdoors/rift/targets/PublicPocketTarget.java b/src/main/java/org/dimdev/dimdoors/rift/targets/PublicPocketTarget.java index 748cf2ac..2c528fdd 100644 --- a/src/main/java/org/dimdev/dimdoors/rift/targets/PublicPocketTarget.java +++ b/src/main/java/org/dimdev/dimdoors/rift/targets/PublicPocketTarget.java @@ -9,11 +9,9 @@ import org.dimdev.dimdoors.world.pocket.Pocket; import org.dimdev.dimdoors.world.pocket.VirtualLocation; public class PublicPocketTarget extends RestoringTarget { - public final static Codec CODEC = RecordCodecBuilder.create(instance -> { - return instance.group( - VirtualTarget.CODEC.optionalFieldOf("wrappedDestination", NoneTarget.DUMMY).forGetter(RestoringTarget::getTarget) - ).apply(instance, PublicPocketTarget::new); - }); + public final static Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + VirtualTarget.CODEC.optionalFieldOf("wrappedDestination", NoneTarget.DUMMY).forGetter(RestoringTarget::getTarget) + ).apply(instance, PublicPocketTarget::new)); private VirtualTarget wrappedDestination; diff --git a/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java b/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java index 235b5cab..820f829d 100644 --- a/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java +++ b/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java @@ -1,6 +1,9 @@ package org.dimdev.dimdoors.rift.targets; +import java.util.Objects; + import com.mojang.serialization.Codec; +import com.mojang.serialization.Lifecycle; import org.dimdev.dimdoors.util.Location; import org.dimdev.dimdoors.util.NbtUtil; import org.dimdev.dimdoors.util.RGBA; @@ -8,19 +11,20 @@ import org.dimdev.dimdoors.util.RGBA; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import net.minecraft.util.registry.RegistryKey; +import net.minecraft.util.registry.SimpleRegistry; import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder; -import net.fabricmc.fabric.api.event.registry.RegistryAttribute; /** * A target that is not an actual object in the game such as a block or a tile * entity. Only virtual targets can be saved to NBT. */ public abstract class VirtualTarget implements Target { - public static final Registry registry = FabricRegistryBuilder.createSimple(VirtualTargetType.class, new Identifier("dimdoors", "virtual_type")).attribute(RegistryAttribute.MODDED).buildAndRegister(); + public static final Registry> REGISTRY = FabricRegistryBuilder., SimpleRegistry>>from(new SimpleRegistry<>(RegistryKey.ofRegistry(new Identifier("dimdoors", "virtual_type")), Lifecycle.stable())).buildAndRegister(); public static final RGBA COLOR = new RGBA(1, 0, 0, 1); - public static Codec CODEC = registry.dispatch(VirtualTarget::getType, VirtualTargetType::codec); + public static Codec CODEC = REGISTRY.dispatch(VirtualTarget::getType, VirtualTargetType::codec); protected Location location; @@ -44,18 +48,17 @@ public abstract class VirtualTarget implements Target { return this.getType().getColor(); } + @Override public boolean equals(Object o) { - return o instanceof VirtualTarget && - ((VirtualTarget) o).canEqual(this) && - (this.location == null ? ((VirtualTarget) o).location == null : ((Object) this.location).equals(((VirtualTarget) o).location)); - } - - protected boolean canEqual(Object other) { - return other instanceof VirtualTarget; + if (this == o) return true; + if (o == null || this.getClass() != o.getClass()) return false; + VirtualTarget that = (VirtualTarget) o; + return Objects.equals(this.location, that.location); } + @Override public int hashCode() { - return 59 + (this.location == null ? 43 : this.location.hashCode()); + return Objects.hash(this.location); } public void setLocation(Location location) { @@ -85,7 +88,7 @@ public abstract class VirtualTarget implements Target { RGBA getColor(); static VirtualTargetType register(String id, Codec codec, RGBA color) { - return Registry.register(registry, (String) id, new VirtualTargetType() { + return Registry.register(REGISTRY, (String) id, new VirtualTargetType() { @Override public Codec codec() { return codec;