Skip to content

Commit

Permalink
Merge pull request #34 from BrokenK3yboard/1.21/dev
Browse files Browse the repository at this point in the history
1.21 port fixes
  • Loading branch information
Siuolplex authored Aug 16, 2024
2 parents 3ae43ec + 72a55be commit b813c1f
Show file tree
Hide file tree
Showing 25 changed files with 159 additions and 91 deletions.
2 changes: 1 addition & 1 deletion dependencies.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
neoforge=21.0.98-beta
neoforge=21.0.146
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import java.util.Set;

import net.minecraft.core.HolderLookup;
import net.minecraft.core.RegistryAccess;
import net.minecraft.core.registries.Registries;
import org.violetmoon.zeta.advancement.AdvancementModifier;
import org.violetmoon.zeta.api.IMutableAdvancement;
import org.violetmoon.zeta.module.ZetaModule;
Expand Down Expand Up @@ -35,12 +38,12 @@ public Set<ResourceLocation> getTargets() {
public boolean apply(ResourceLocation res, IMutableAdvancement adv) {
for(ResourceKey<Biome> key : locations) {
String name = key.location().toString();

Criterion criterion = new Criterion(PlayerTrigger.TriggerInstance.located(
LocationPredicate.inBiome(key))); //todo: I dunno how to do codec
adv.addRequiredCriterion(name, criterion);
/* TODO: event.getRegistryAccess() IN AdvancementModifierRegistry, pass to here?
Criterion<?> criterion = PlayerTrigger.TriggerInstance.located(
LocationPredicate.Builder.inBiome(access.registry(Registries.BIOME).get().getHolderOrThrow(key)));
adv.addRequiredCriterion(name, criterion);
*/
}

return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.FluidState;
import net.neoforged.neoforge.common.ItemAbility;
import org.jetbrains.annotations.Nullable;

import java.util.Optional;
Expand Down Expand Up @@ -95,13 +96,13 @@ default boolean shouldDisplayFluidOverlayZeta(BlockState state, BlockAndTintGett
}

@Nullable
default BlockState getToolModifiedStateZeta(BlockState state, UseOnContext context, String itemAbility, boolean simulate) {
default BlockState getToolModifiedStateZeta(BlockState state, UseOnContext context, ItemAbility ability, boolean simulate) {
//TODO, check i copied forge correctly

//ItemStack itemStack = context.getItemInHand();
//if (!itemStack.canPerformAction(toolAction)) //Forge extension, TODO when i make an IZetaItemExtensions
// return null;
return switch(itemAbility) {
return switch(ability.toString()) {
case "axe_strip" -> AxeItem.getAxeStrippingState(state); //TODO forge extension
case "axe_scrape" -> WeatheringCopper.getPrevious(state).orElse(null);
case "axe_wax_off" -> Optional.ofNullable(HoneycombItem.WAX_OFF_BY_BLOCK.get().get(state.getBlock())).map(block -> block.withPropertiesOf(state)).orElse(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class ScrollableWidgetList<S extends Screen, E extends ScrollableWidgetLi
public final S parent;

public ScrollableWidgetList(S parent) {
super(Minecraft.getInstance(), parent.width, parent.height, 40, parent.height - 40, 30);
super(Minecraft.getInstance(), parent.width, parent.height - 80, 40, 30);
this.parent = parent;
}

Expand All @@ -42,11 +42,11 @@ public void scroll2(int amt) {
//protected -> public, and made more convenient (takes index instead of Entry)
public void ensureVisible2(int index) {
int i = this.getRowTop(index);
int j = i - this.y0 - 4 - this.itemHeight;
int j = i - this.getY() - 4 - this.itemHeight;
if (j < 0)
this.scroll2(j);

int k = this.y1 - i - this.itemHeight - this.itemHeight;
int k = this.getBottom() - i - this.itemHeight - this.itemHeight;
if (k < 0)
this.scroll2(-k);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ interface Post extends MouseButtonPressed { }
}

interface MouseScrolled extends ZScreen, Cancellable {
double getScrollDelta();
double getScrollDeltaX();
double getScrollDeltaY();

interface Pre extends MouseScrolled { }
interface Post extends MouseScrolled { }
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/violetmoon/zeta/config/ConfigFlagManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.Map;
import java.util.Set;

import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import org.violetmoon.zeta.Zeta;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.load.ZRegister;
Expand All @@ -26,6 +27,8 @@ public final class ConfigFlagManager {
//TODO augh; needed for BrewingRegistry
public final FlagIngredient.Serializer flagIngredientSerializer = new FlagIngredient.Serializer(this);

public static final LootItemConditionType FLAG_CONDITION_TYPE = new LootItemConditionType(FlagLootCondition.CODEC);

public ConfigFlagManager(Zeta zeta) {
this.zeta = zeta;

Expand All @@ -40,9 +43,7 @@ public void onRegister(ZRegister event) {
ext.registerConditionSerializer(new FlagCondition.Serializer(this, ResourceLocation.fromNamespaceAndPath(zeta.modid, "flag")));
ext.registerConditionSerializer(new FlagCondition.Serializer(this, ResourceLocation.fromNamespaceAndPath(zeta.modid, "advancement_flag"), () -> ZetaGeneralConfig.enableModdedAdvancements));

FlagLootCondition.FlagSerializer flagSerializer = new FlagLootCondition.FlagSerializer(this);
Registry.register(BuiltInRegistries.LOOT_CONDITION_TYPE, ResourceLocation.fromNamespaceAndPath(zeta.modid, "flag"), flagSerializer.selfType);

Registry.register(BuiltInRegistries.LOOT_CONDITION_TYPE, ResourceLocation.fromNamespaceAndPath(zeta.modid, "flag"), FLAG_CONDITION_TYPE);
ext.registerIngredientSerializer(ResourceLocation.fromNamespaceAndPath(zeta.modid, "flag"), flagIngredientSerializer);

SyncedFlagHandler.setupFlagManager(this);
Expand Down Expand Up @@ -75,5 +76,4 @@ public boolean getFlag(String flag) {
public Set<String> getAllFlags() {
return allFlags;
}

}
}
49 changes: 14 additions & 35 deletions src/main/java/org/violetmoon/zeta/config/FlagLootCondition.java
Original file line number Diff line number Diff line change
@@ -1,55 +1,34 @@
package org.violetmoon.zeta.config;

import org.jetbrains.annotations.NotNull;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;

import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.world.level.storage.loot.LootContext;
import net.minecraft.world.level.storage.loot.Serializer;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemConditionType;
import org.jetbrains.annotations.NotNull;
import org.violetmoon.zeta.mod.ZetaMod;

import static org.violetmoon.zeta.config.ConfigFlagManager.FLAG_CONDITION_TYPE;

/**
* @author WireSegal
* Created at 1:23 PM on 8/24/19.
*/
public record FlagLootCondition(ConfigFlagManager manager, String flag, LootItemConditionType selfType) implements LootItemCondition {
public record FlagLootCondition(String flag) implements LootItemCondition {

public static MapCodec<FlagLootCondition> CODEC = RecordCodecBuilder.mapCodec(
inst -> inst.group(Codec.STRING.fieldOf("flag").forGetter(FlagLootCondition::flag)
).apply(inst, FlagLootCondition::new));

@Override
public boolean test(LootContext lootContext) {
return manager.getFlag(flag);
return ZetaMod.ZETA.configManager.getConfigFlagManager().getFlag(flag);
}

@NotNull
@Override
public LootItemConditionType getType() {
return selfType;
return FLAG_CONDITION_TYPE;
}

public static final class FlagSerializer implements Serializer<FlagLootCondition> {
private final ConfigFlagManager manager;
public final LootItemConditionType selfType;

public FlagSerializer(ConfigFlagManager manager) {
this.manager = manager;

//The LootItemCondition stuff has a circular dependency :/
this.selfType = new LootItemConditionType(this);
}

@Override
public void serialize(@NotNull JsonObject json, @NotNull FlagLootCondition value, @NotNull JsonSerializationContext context) {
json.addProperty("flag", value.flag);
}

@NotNull
@Override
public FlagLootCondition deserialize(@NotNull JsonObject json, @NotNull JsonDeserializationContext context) {
String flag = json.getAsJsonPrimitive("flag").getAsString();
return new FlagLootCondition(manager, flag, selfType);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public interface ZPlayerInteract extends IZetaPlayEvent, Cancellable {
InteractionHand getHand();
BlockPos getPos();
Level getLevel();
void setCancellationResult(InteractionResult result);

interface EntityInteractSpecific extends ZPlayerInteract {
Entity getTarget();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.violetmoon.zeta.mixin.mixins;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.SpawnPlacementType;
import net.minecraft.world.entity.SpawnPlacements;
import net.minecraft.world.level.levelgen.Heightmap;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

@Mixin(SpawnPlacements.class)
public interface InvokerSpawnPlacements {

@Invoker("register")
static <T extends Mob> void zeta$register(EntityType<T> entity, SpawnPlacementType type, Heightmap.Types heightMap, SpawnPlacements.SpawnPredicate<T> predicate) {
throw new RuntimeException();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ public boolean stillValid(@NotNull Player entityplayer) {
return getLevel().getBlockEntity(getBlockPos()) == this && entityplayer.distanceToSqr(worldPosition.getX() + 0.5D, worldPosition.getY() + 0.5D, worldPosition.getZ() + 0.5D) <= 64;
}

// TODO: REMOVE?
/*
@SuppressWarnings("unchecked")
@Override
public <T> @NotNull LazyOptional<T> getCapability(@NotNull Capability<T> capability, Direction facing) {
Expand All @@ -141,6 +143,7 @@ public boolean stillValid(@NotNull Player entityplayer) {
return LazyOptional.empty();
}
*/

@Override
public boolean canPlaceItem(int i, @NotNull ItemStack itemstack) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.load.ZConfigChanged;
import org.violetmoon.zeta.item.ZetaSpawnEggItem;
import org.violetmoon.zeta.mixin.mixins.InvokerSpawnPlacements;
import org.violetmoon.zeta.module.ZetaModule;

import net.minecraft.core.registries.BuiltInRegistries;
Expand All @@ -28,8 +29,7 @@ public EntitySpawnHandler(Zeta zeta) {
}

public <T extends Mob> void registerSpawn(EntityType<T> entityType, MobCategory classification, SpawnPlacementType placementType, Heightmap.Types heightMapType, SpawnPredicate<T> placementPredicate, EntitySpawnConfig config) {
SpawnPlacements.register(entityType, placementType, heightMapType, placementPredicate); //todo: Access Widener

InvokerSpawnPlacements.zeta$register(entityType, placementType, heightMapType, placementPredicate);
track(entityType, classification, config, false);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ public boolean shouldDisplayFluidOverlayZeta(BlockState state, BlockAndTintGette
return state.shouldDisplayFluidOverlay(level, pos, fluidState);
}


@Override
public @Nullable BlockState getToolModifiedStateZeta(BlockState state, UseOnContext context, ItemAbility ability, boolean simulate) {
return ability == null ? null : state.getToolModifiedState(context, ability, simulate);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import net.minecraft.client.gui.screens.Screen;
import net.neoforged.neoforge.client.event.ScreenEvent;
import org.violetmoon.zeta.client.event.play.ZScreen;
import org.violetmoon.zetaimplforge.mixin.mixins.AccessorEvent;

import java.util.List;

Expand Down Expand Up @@ -122,12 +123,12 @@ public Pre(ScreenEvent.MouseButtonPressed.Pre e) {

@Override
public boolean isCanceled() {
return e.isCanceled();
return ((AccessorEvent)e).zeta$isCanceled();
}

@Override
public void setCanceled(boolean cancel) {
e.setCanceled(cancel);
public void setCanceled(boolean canceled) {
((AccessorEvent)e).zeta$setCanceled(canceled);
}
}

Expand All @@ -147,18 +148,23 @@ public MouseScrolled(ScreenEvent.MouseScrolled e) {
}

@Override
public double getScrollDelta() {
return e.getScrollDelta();
public double getScrollDeltaX() {
return e.getScrollDeltaX();
}

@Override
public double getScrollDeltaY() {
return e.getScrollDeltaY();
}

@Override
public boolean isCanceled() {
return e.isCanceled();
return ((AccessorEvent)e).zeta$isCanceled();
}

@Override
public void setCanceled(boolean cancel) {
e.setCanceled(cancel);
((AccessorEvent)e).zeta$setCanceled(cancel);
}

public static class Pre extends ForgeZScreen.MouseScrolled implements ZScreen.MouseScrolled.Pre {
Expand Down Expand Up @@ -199,12 +205,12 @@ public int getModifiers() {

@Override
public boolean isCanceled() {
return e.isCanceled();
return ((AccessorEvent)e).zeta$isCanceled();
}

@Override
public void setCanceled(boolean cancel) {
e.setCanceled(cancel);
((AccessorEvent)e).zeta$setCanceled(cancel);
}

public static class Pre extends ForgeZScreen.KeyPressed implements ZScreen.KeyPressed.Pre {
Expand Down Expand Up @@ -240,12 +246,12 @@ public int getModifiers() {

@Override
public boolean isCanceled() {
return e.isCanceled();
return ((AccessorEvent)e).zeta$isCanceled();
}

@Override
public void setCanceled(boolean cancel) {
e.setCanceled(true);
((AccessorEvent)e).zeta$setCanceled(cancel);
}

public static class Pre extends ForgeZScreen.CharacterTyped implements ZScreen.CharacterTyped.Pre {
Expand Down
Loading

0 comments on commit b813c1f

Please sign in to comment.