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;
|
||||
|
||||
public class EscapeTarget extends VirtualTarget implements EntityTarget { // TODO: createRift option
|
||||
public static final Codec<EscapeTarget> CODEC = RecordCodecBuilder.create(instance -> {
|
||||
return instance.group(
|
||||
public static final Codec<EscapeTarget> CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
||||
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) {
|
||||
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;
|
||||
|
||||
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
|
||||
|
|
|
@ -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<PublicPocketTarget> CODEC = RecordCodecBuilder.create(instance -> {
|
||||
return instance.group(
|
||||
public final static Codec<PublicPocketTarget> CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
||||
VirtualTarget.CODEC.optionalFieldOf("wrappedDestination", NoneTarget.DUMMY).forGetter(RestoringTarget::getTarget)
|
||||
).apply(instance, PublicPocketTarget::new);
|
||||
});
|
||||
).apply(instance, PublicPocketTarget::new));
|
||||
|
||||
private VirtualTarget wrappedDestination;
|
||||
|
||||
|
|
|
@ -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<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 Codec<VirtualTarget> CODEC = registry.dispatch(VirtualTarget::getType, VirtualTargetType::codec);
|
||||
public static Codec<VirtualTarget> 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 <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
|
||||
public Codec<T> codec() {
|
||||
return codec;
|
||||
|
|
Loading…
Reference in a new issue