repo for my hex addons :3
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

map dfu

+27 -2
+2 -1
util/src/main/resources/phlib.mixins.json
··· 4 4 "package": "org.eu.net.pool.phlib.mixin", 5 5 "compatibilityLevel": "JAVA_17", 6 6 "mixins": [ 7 - "PatternIotaMixin" 7 + "PatternIotaMixin", 8 + "SimpleRegistryMixin" 8 9 ] 9 10 }
+5 -1
util/src/main/scala/org/eu/net/pool/phlib/main.scala
··· 215 215 def init() = 216 216 hexXplat.getIotaTypeRegistry("map") = MapIota 217 217 hexXplat.getArithmeticRegistry("maps") = mapArithmetic 218 + Events.registryLookup.register: 219 + case (r, i) if r == hexXplat.getIotaTypeRegistry && i == Identifier.of("hexic", "map") => MapIota 218 220 Patterns.register("empty_map", e"dqdwdqd"): 219 221 Patterns.mkLiteral(MapIota()) 220 222 221 223 object Events: 222 - val beforePatternExecute: Event[PartialFunction[(PatternIota, CastingVM, ServerWorld, SpellContinuation), CastResult]] = EventFactory.createArrayBacked(classOf, PartialFunction.empty, ary => (PartialFunction.empty /: ary) (_ orElse _)) 224 + def partialEvent[T, R]: Event[PartialFunction[T, R]] = EventFactory.createArrayBacked(classOf, PartialFunction.empty, ary => (PartialFunction.empty /: ary) (_ orElse _)) 225 + val beforePatternExecute: Event[PartialFunction[(PatternIota, CastingVM, ServerWorld, SpellContinuation), CastResult]] = partialEvent 226 + val registryLookup: Event[PartialFunction[(Registry[?], Identifier), ?]] = partialEvent
+20
util/src/main/scala/org/eu/net/pool/phlib/mixin/SimpleRegistryMixin.java
··· 1 + package org.eu.net.pool.phlib.mixin; 2 + 3 + import net.minecraft.registry.Registry; 4 + import net.minecraft.registry.SimpleDefaultedRegistry; 5 + import net.minecraft.registry.SimpleRegistry; 6 + import net.minecraft.util.Identifier; 7 + import org.eu.net.pool.phlib.Events; 8 + import org.spongepowered.asm.mixin.Mixin; 9 + import org.spongepowered.asm.mixin.injection.At; 10 + import org.spongepowered.asm.mixin.injection.Inject; 11 + import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 12 + import scala.Tuple2; 13 + 14 + @Mixin({SimpleRegistry.class, SimpleDefaultedRegistry.class}) 15 + public abstract class SimpleRegistryMixin<T> implements Registry<T> { 16 + @Inject(at = @At("HEAD"), method = "get(Lnet/minecraft/util/Identifier;)Ljava/lang/Object;", cancellable = true) 17 + void preGet(Identifier id, CallbackInfoReturnable<T> cir) { 18 + Events.registryLookup().invoker().unapply(new Tuple2<>(this, id)).foreach(x -> { cir.setReturnValue((T) x); return null; }); 19 + } 20 + }