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
This commit is contained in:
parent
2c575a55cb
commit
2402b210e8
5 changed files with 25 additions and 53 deletions
|
@ -18,13 +18,11 @@ import net.minecraft.text.TranslatableText;
|
||||||
import static org.dimdev.dimdoors.util.EntityUtils.chat;
|
import static org.dimdev.dimdoors.util.EntityUtils.chat;
|
||||||
|
|
||||||
public class EscapeTarget extends VirtualTarget implements EntityTarget { // TODO: createRift option
|
public class EscapeTarget extends VirtualTarget implements EntityTarget { // TODO: createRift option
|
||||||
public static final Codec<EscapeTarget> CODEC = RecordCodecBuilder.create(instance -> {
|
public static final Codec<EscapeTarget> CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
||||||
return instance.group(
|
Codec.BOOL.fieldOf("canEscapeLimbo").forGetter(target -> target.canEscapeLimbo)
|
||||||
Codec.BOOL.fieldOf("canEscapeLimbo").forGetter(target -> target.canEscapeLimbo)
|
).apply(instance, EscapeTarget::new));
|
||||||
).apply(instance, EscapeTarget::new);
|
|
||||||
});
|
|
||||||
|
|
||||||
protected boolean canEscapeLimbo = false;
|
protected boolean canEscapeLimbo;
|
||||||
|
|
||||||
public EscapeTarget(boolean canEscapeLimbo) {
|
public EscapeTarget(boolean canEscapeLimbo) {
|
||||||
this.canEscapeLimbo = canEscapeLimbo;
|
this.canEscapeLimbo = canEscapeLimbo;
|
||||||
|
|
|
@ -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<Direction, Map<Fluid, Integer>> fluids = new HashMap<>();
|
|
||||||
// public Map<Direction, Integer> redstone = new HashMap<>();
|
|
||||||
// public Map<Direction, Integer> power = new HashMap<>();
|
|
||||||
//
|
|
||||||
// public void fromTag(CompoundTag nbt) {
|
|
||||||
// AnnotatedNbt.load(this, nbt);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public CompoundTag toTag(CompoundTag nbt) {
|
|
||||||
// return AnnotatedNbt.serialize(this);
|
|
||||||
// }
|
|
||||||
//}
|
|
|
@ -5,9 +5,10 @@ import com.mojang.serialization.Codec;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
public class LimboTarget extends VirtualTarget implements EntityTarget {
|
public class LimboTarget extends VirtualTarget implements EntityTarget {
|
||||||
public static final Codec<LimboTarget> CODEC = Codec.unit(LimboTarget::new);
|
public static final LimboTarget INSTANCE = new LimboTarget();
|
||||||
|
public static final Codec<LimboTarget> CODEC = Codec.unit(INSTANCE);
|
||||||
|
|
||||||
public LimboTarget() {
|
private LimboTarget() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -9,11 +9,9 @@ import org.dimdev.dimdoors.world.pocket.Pocket;
|
||||||
import org.dimdev.dimdoors.world.pocket.VirtualLocation;
|
import org.dimdev.dimdoors.world.pocket.VirtualLocation;
|
||||||
|
|
||||||
public class PublicPocketTarget extends RestoringTarget {
|
public class PublicPocketTarget extends RestoringTarget {
|
||||||
public final static Codec<PublicPocketTarget> CODEC = RecordCodecBuilder.create(instance -> {
|
public final static Codec<PublicPocketTarget> CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
||||||
return instance.group(
|
VirtualTarget.CODEC.optionalFieldOf("wrappedDestination", NoneTarget.DUMMY).forGetter(RestoringTarget::getTarget)
|
||||||
VirtualTarget.CODEC.optionalFieldOf("wrappedDestination", NoneTarget.DUMMY).forGetter(RestoringTarget::getTarget)
|
).apply(instance, PublicPocketTarget::new));
|
||||||
).apply(instance, PublicPocketTarget::new);
|
|
||||||
});
|
|
||||||
|
|
||||||
private VirtualTarget wrappedDestination;
|
private VirtualTarget wrappedDestination;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package org.dimdev.dimdoors.rift.targets;
|
package org.dimdev.dimdoors.rift.targets;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
|
import com.mojang.serialization.Lifecycle;
|
||||||
import org.dimdev.dimdoors.util.Location;
|
import org.dimdev.dimdoors.util.Location;
|
||||||
import org.dimdev.dimdoors.util.NbtUtil;
|
import org.dimdev.dimdoors.util.NbtUtil;
|
||||||
import org.dimdev.dimdoors.util.RGBA;
|
import org.dimdev.dimdoors.util.RGBA;
|
||||||
|
@ -8,19 +11,20 @@ import org.dimdev.dimdoors.util.RGBA;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.registry.Registry;
|
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.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
|
* 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.
|
* entity. Only virtual targets can be saved to NBT.
|
||||||
*/
|
*/
|
||||||
public abstract class VirtualTarget implements Target {
|
public abstract class VirtualTarget implements Target {
|
||||||
public static final Registry<VirtualTargetType> registry = FabricRegistryBuilder.createSimple(VirtualTargetType.class, new Identifier("dimdoors", "virtual_type")).attribute(RegistryAttribute.MODDED).buildAndRegister();
|
public static final Registry<VirtualTargetType<?>> REGISTRY = FabricRegistryBuilder.<VirtualTargetType<?>, SimpleRegistry<VirtualTargetType<?>>>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 final RGBA COLOR = new RGBA(1, 0, 0, 1);
|
||||||
|
|
||||||
public static Codec<VirtualTarget> CODEC = registry.dispatch(VirtualTarget::getType, VirtualTargetType::codec);
|
public static Codec<VirtualTarget> CODEC = REGISTRY.dispatch(VirtualTarget::getType, VirtualTargetType::codec);
|
||||||
|
|
||||||
protected Location location;
|
protected Location location;
|
||||||
|
|
||||||
|
@ -44,18 +48,17 @@ public abstract class VirtualTarget implements Target {
|
||||||
return this.getType().getColor();
|
return this.getType().getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
return o instanceof VirtualTarget &&
|
if (this == o) return true;
|
||||||
((VirtualTarget) o).canEqual(this) &&
|
if (o == null || this.getClass() != o.getClass()) return false;
|
||||||
(this.location == null ? ((VirtualTarget) o).location == null : ((Object) this.location).equals(((VirtualTarget) o).location));
|
VirtualTarget that = (VirtualTarget) o;
|
||||||
}
|
return Objects.equals(this.location, that.location);
|
||||||
|
|
||||||
protected boolean canEqual(Object other) {
|
|
||||||
return other instanceof VirtualTarget;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return 59 + (this.location == null ? 43 : this.location.hashCode());
|
return Objects.hash(this.location);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLocation(Location location) {
|
public void setLocation(Location location) {
|
||||||
|
@ -85,7 +88,7 @@ public abstract class VirtualTarget implements Target {
|
||||||
RGBA getColor();
|
RGBA getColor();
|
||||||
|
|
||||||
static <T extends VirtualTarget> VirtualTargetType<T> register(String id, Codec<T> codec, RGBA color) {
|
static <T extends VirtualTarget> VirtualTargetType<T> register(String id, Codec<T> codec, RGBA color) {
|
||||||
return Registry.register(registry, (String) id, new VirtualTargetType<T>() {
|
return Registry.register(REGISTRY, (String) id, new VirtualTargetType<T>() {
|
||||||
@Override
|
@Override
|
||||||
public Codec<T> codec() {
|
public Codec<T> codec() {
|
||||||
return codec;
|
return codec;
|
||||||
|
|
Loading…
Reference in a new issue