This commit is contained in:
parent
93429e36e6
commit
3f1422d5a0
@ -43,15 +43,11 @@ repositories {
|
||||
}
|
||||
|
||||
loom {
|
||||
splitEnvironmentSourceSets()
|
||||
|
||||
mods {
|
||||
"shylie-test-mod" {
|
||||
sourceSet sourceSets.main
|
||||
sourceSet sourceSets.client
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fabricApi {
|
||||
|
||||
@ -1,15 +0,0 @@
|
||||
package info.shylie.testmod.client.mixin;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(Minecraft.class)
|
||||
public class ExampleClientMixin {
|
||||
@Inject(at = @At("HEAD"), method = "run")
|
||||
private void init(CallbackInfo info) {
|
||||
// This code is injected into the start of Minecraft.run()V
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package info.shylie.testmod.spell.blunder;
|
||||
|
||||
import dev.enjarai.trickster.spell.blunder.BlunderException;
|
||||
import dev.enjarai.trickster.spell.blunder.TrickBlunderException;
|
||||
import dev.enjarai.trickster.spell.trick.Trick;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
|
||||
public class UnknownSubLevelBlunder extends TrickBlunderException {
|
||||
public UnknownSubLevelBlunder(Trick<?> source) {
|
||||
super(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MutableComponent createMessage() {
|
||||
return super.createMessage().append("Unknown sublevel");
|
||||
}
|
||||
}
|
||||
@ -9,7 +9,7 @@ import net.minecraft.core.Registry;
|
||||
import java.util.OptionalInt;
|
||||
|
||||
public final class FragmentTypes {
|
||||
public static final FragmentType<SublevelFragment> SUBLEVEL = register("sublevel", SublevelFragment.ENDEC);
|
||||
public static final FragmentType<SubLevelFragment> SUBLEVEL = register("sublevel", SubLevelFragment.ENDEC);
|
||||
|
||||
public static void register() {
|
||||
}
|
||||
|
||||
@ -3,16 +3,20 @@ package info.shylie.testmod.spell.fragment;
|
||||
import dev.enjarai.trickster.EndecTomfoolery;
|
||||
import dev.enjarai.trickster.spell.Fragment;
|
||||
import dev.enjarai.trickster.spell.fragment.FragmentType;
|
||||
import dev.ryanhcode.sable.api.sublevel.SubLevelContainer;
|
||||
import dev.ryanhcode.sable.sublevel.SubLevel;
|
||||
import io.wispforest.endec.StructEndec;
|
||||
import io.wispforest.endec.impl.StructEndecBuilder;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
public record SublevelFragment(UUID uuid) implements Fragment {
|
||||
public static final StructEndec<SublevelFragment> ENDEC = StructEndecBuilder.of(
|
||||
EndecTomfoolery.UUID.fieldOf("uuid", SublevelFragment::uuid),
|
||||
SublevelFragment::new
|
||||
public record SubLevelFragment(UUID uuid) implements Fragment {
|
||||
public static final StructEndec<SubLevelFragment> ENDEC = StructEndecBuilder.of(
|
||||
EndecTomfoolery.UUID.fieldOf("uuid", SubLevelFragment::uuid),
|
||||
SubLevelFragment::new
|
||||
);
|
||||
public static final int WEIGHT = 8;
|
||||
|
||||
@ -33,6 +37,14 @@ public record SublevelFragment(UUID uuid) implements Fragment {
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return obj instanceof SublevelFragment(UUID other) && uuid.equals(other);
|
||||
return obj instanceof SubLevelFragment(UUID other) && uuid.equals(other);
|
||||
}
|
||||
|
||||
public Optional<SubLevel> getSublevel(Level level) {
|
||||
var container = SubLevelContainer.getContainer(level);
|
||||
if (container == null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return Optional.ofNullable(container.getSubLevel(uuid));
|
||||
}
|
||||
}
|
||||
@ -10,11 +10,10 @@ import dev.enjarai.trickster.spell.fragment.FragmentType;
|
||||
import dev.enjarai.trickster.spell.fragment.VectorFragment;
|
||||
import dev.enjarai.trickster.spell.trick.Trick;
|
||||
import dev.enjarai.trickster.spell.type.Signature;
|
||||
import dev.ryanhcode.sable.Sable;
|
||||
import dev.ryanhcode.sable.api.SubLevelAssemblyHelper;
|
||||
import dev.ryanhcode.sable.companion.math.BoundingBox3i;
|
||||
import info.shylie.testmod.spell.fragment.FragmentTypes;
|
||||
import info.shylie.testmod.spell.fragment.SublevelFragment;
|
||||
import info.shylie.testmod.spell.fragment.SubLevelFragment;
|
||||
import io.vavr.collection.Array;
|
||||
|
||||
public class TestTrick extends Trick<TestTrick> {
|
||||
@ -22,7 +21,7 @@ public class TestTrick extends Trick<TestTrick> {
|
||||
super(Pattern.of(3, 4, 5), Signature.of(FragmentType.VECTOR, TestTrick::run, FragmentTypes.SUBLEVEL));
|
||||
}
|
||||
|
||||
public SublevelFragment run(SpellContext ctx, VectorFragment pos) {
|
||||
public SubLevelFragment run(SpellContext ctx, VectorFragment pos) {
|
||||
var blockPos = pos.toBlockPos();
|
||||
var world = ctx.source().getWorld();
|
||||
|
||||
@ -44,7 +43,7 @@ public class TestTrick extends Trick<TestTrick> {
|
||||
new BoundingBox3i(blockPos, blockPos)
|
||||
);
|
||||
|
||||
return new SublevelFragment(level.getUniqueId());
|
||||
return new SubLevelFragment(level.getUniqueId());
|
||||
}
|
||||
else {
|
||||
throw new BlockTooHardBlunder(this);
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
package info.shylie.testmod.spell.trick;
|
||||
|
||||
import dev.enjarai.trickster.spell.Pattern;
|
||||
import dev.enjarai.trickster.spell.SpellContext;
|
||||
import dev.enjarai.trickster.spell.execution.TickData;
|
||||
import dev.enjarai.trickster.spell.fragment.FragmentType;
|
||||
import dev.enjarai.trickster.spell.fragment.VectorFragment;
|
||||
import dev.enjarai.trickster.spell.fragment.VoidFragment;
|
||||
import dev.enjarai.trickster.spell.trick.Trick;
|
||||
import dev.enjarai.trickster.spell.type.Signature;
|
||||
import dev.ryanhcode.sable.sublevel.ServerSubLevel;
|
||||
import info.shylie.testmod.ShylieTestMod;
|
||||
import info.shylie.testmod.spell.blunder.UnknownSubLevelBlunder;
|
||||
import info.shylie.testmod.spell.fragment.FragmentTypes;
|
||||
import info.shylie.testmod.spell.fragment.SubLevelFragment;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class TestTrick2 extends Trick<TestTrick2> {
|
||||
private static final TickData.Key<HashMap<SubLevelFragment, Float>> COMPOUND_LEN = new TickData.Key<>(
|
||||
ShylieTestMod.id("test_trick_2_compound_len"), null
|
||||
);
|
||||
|
||||
public TestTrick2() {
|
||||
super(
|
||||
Pattern.of(3, 6, 4, 5),
|
||||
Signature.of(FragmentTypes.SUBLEVEL, FragmentType.VECTOR, TestTrick2::run, FragmentType.VOID)
|
||||
);
|
||||
}
|
||||
|
||||
public VoidFragment run(SpellContext ctx, SubLevelFragment target, VectorFragment v) throws UnknownSubLevelBlunder {
|
||||
var subLevel = target.getSublevel(ctx.source().getWorld()).orElseThrow(() -> new UnknownSubLevelBlunder(this));
|
||||
subLevel.markRemoved();
|
||||
return VoidFragment.INSTANCE;
|
||||
}
|
||||
}
|
||||
@ -6,8 +6,10 @@ import net.minecraft.core.Registry;
|
||||
|
||||
public class Tricks {
|
||||
public static final TestTrick TEST = register("test", new TestTrick());
|
||||
public static final TestTrick2 TEST_2 = register("test_2", new TestTrick2());
|
||||
|
||||
public static void register() {}
|
||||
public static void register() {
|
||||
}
|
||||
|
||||
private static <T extends Trick<?>> T register(String path, T trick) {
|
||||
return Registry.register(dev.enjarai.trickster.spell.trick.Tricks.REGISTRY, ShylieTestMod.id(path), trick);
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
"package": "info.shylie.testmod.client.mixin",
|
||||
"compatibilityLevel": "JAVA_21",
|
||||
"client": [
|
||||
"ExampleClientMixin"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
Loading…
x
Reference in New Issue
Block a user