Skip to content

Commit

Permalink
updated to Neoforge 21.0.52, general code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
desht committed Jul 3, 2024
1 parent c53d315 commit 97bacaf
Show file tree
Hide file tree
Showing 25 changed files with 69 additions and 197 deletions.
12 changes: 5 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,15 @@ curse_project_id=250294
# Minecraft/Forge
minecraft_version=1.21
minecraft_version_range=[1.21,)
neo_version=21.0.16-beta
neo_version_range=[21.0.10-beta,)
neo_version=21.0.52-beta
neo_version_range=[21.0.40-beta,)
loader_version_range=[4,)
mappings_channel=parchment
mappings_version=1.20.6-2024.06.02
pack_format_number=18
neogradle.subsystems.parchment.minecraftVersion=1.20.6
neogradle.subsystems.parchment.mappingsVersion=2024.06.02
neogradle.subsystems.parchment.minecraftVersion=1.21
neogradle.subsystems.parchment.mappingsVersion=2024.06.23

# Dependencies
top_version=1.21_neo-12.0.0-1
jade_curse_id=5427817
jei_version=19.0.0.3
jei_version=19.0.0.11
patchouli_version=1.20.4-85-NEOFORGE-SNAPSHOT
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package me.desht.modularrouters.client.gui.filter;

import me.desht.modularrouters.ModularRouters;
import me.desht.modularrouters.block.tile.ModularRouterBlockEntity;
import me.desht.modularrouters.client.gui.widgets.button.BackButton;
import me.desht.modularrouters.client.gui.widgets.button.TexturedButton;
Expand Down Expand Up @@ -63,7 +62,7 @@ public void init() {
ModularRouterBlockEntity router = menu.getRouter();
CompiledModule cm = ((ModuleItem) moduleStack.getItem()).compile(router, moduleStack);
target = cm.getEffectiveTarget(router);
if (target.hasItemHandlerClientSide()) {
if (target.hasItemHandler(Minecraft.getInstance().level)) {
MutableComponent title = xlate(target.blockTranslationKey);
addRenderableWidget(new MergeButton(leftPos + 28, topPos + 130, target.toString(), title, p -> {
if (target != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package me.desht.modularrouters.client.gui.module;

import me.desht.modularrouters.ModularRouters;
import me.desht.modularrouters.block.tile.ModularRouterBlockEntity;
import me.desht.modularrouters.client.ClientSetup;
import me.desht.modularrouters.client.gui.IMouseOverHelpProvider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,6 @@
import java.util.Optional;

public class ClientUtil {
public static Level theClientLevel() {
return Minecraft.getInstance().level;
}

public static Optional<ModularRouterBlockEntity> getOpenItemRouter() {
if (Minecraft.getInstance().screen instanceof ModularRouterScreen mrs) {
return Optional.of(mrs.getMenu().getRouter());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import me.desht.modularrouters.container.handler.GhostItemHandler;
import me.desht.modularrouters.util.MFLocator;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.ClickType;
Expand All @@ -21,10 +20,6 @@ public abstract class AbstractInvSmartFilterMenu extends AbstractSmartFilterMenu

public final IItemHandlerModifiable handler;

protected AbstractInvSmartFilterMenu(MenuType<?> menuType, int windowId, Inventory invPlayer, FriendlyByteBuf extraData) {
this(menuType, windowId, invPlayer, MFLocator.fromNetwork(extraData));
}

protected AbstractInvSmartFilterMenu(MenuType<?> menuType, int windowId, Inventory invPlayer, MFLocator locator) {
super(menuType, windowId, invPlayer, locator);

Expand Down Expand Up @@ -62,7 +57,7 @@ public ItemStack quickMoveStack(Player playerIn, int index) {
} else if (index >= 1) {
// shift-clicking in player inventory: copy it into the ghost slot
// but don't remove it from playerpack inventory
Slot s = slots.get(0);
Slot s = slots.getFirst();
s.set(stack);
slot.set(stackInSlot);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ public void clearSlots() {
}
}

public int mergeInventory(IItemHandler srcInv, ModuleFlags flags, boolean clearFirst) {
public void mergeInventory(IItemHandler srcInv, ModuleFlags flags, boolean clearFirst) {
if (srcInv == null) {
return 0;
return;
}
SetofItemStack stacks = clearFirst ? new SetofItemStack(flags) : SetofItemStack.fromItemHandler(handler, flags);
int origSize = stacks.size();
Expand All @@ -98,8 +98,6 @@ public int mergeInventory(IItemHandler srcInv, ModuleFlags flags, boolean clearF
if (getRouter() != null && !getRouter().nonNullLevel().isClientSide) {
getRouter().recompileNeeded(RecompileFlag.MODULES);
}

return stacks.size() - origSize;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public abstract class BaseModuleHandler extends GhostItemHandler {
private final DataComponentType<ItemContainerContents> componentType;
private boolean autoSave = true;

public BaseModuleHandler(ItemStack holderStack, ModularRouterBlockEntity router, int size, DataComponentType<ItemContainerContents> componentType) {
protected BaseModuleHandler(ItemStack holderStack, ModularRouterBlockEntity router, int size, DataComponentType<ItemContainerContents> componentType) {
super(size);

this.holderStack = holderStack;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@
import net.minecraft.data.loot.LootTableProvider;
import net.minecraft.util.ProblemReporter;
import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.item.enchantment.Enchantments;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.storage.loot.LootPool;
import net.minecraft.world.level.storage.loot.LootTable;
import net.minecraft.world.level.storage.loot.ValidationContext;
import net.minecraft.world.level.storage.loot.entries.LootItem;
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
import net.minecraft.world.level.storage.loot.functions.CopyComponentsFunction;
import net.minecraft.world.level.storage.loot.functions.CopyNameFunction;
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition;
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public int getEnergyCost(ItemStack stack) {
protected void addSettingsInformation(ItemStack stack, List<Component> list) {
super.addSettingsInformation(stack, list);

BreakerSettings settings = stack.get(ModDataComponents.BREAKER_SETTINGS);
BreakerSettings settings = stack.getOrDefault(ModDataComponents.BREAKER_SETTINGS, BreakerSettings.DEFAULT);
list.add(ClientUtil.xlate(settings.matchType().getTranslationKey()).withStyle(ChatFormatting.YELLOW));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public MenuType<? extends ModuleMenu> getMenuType() {
public void addSettingsInformation(ItemStack stack, List<Component> list) {
super.addSettingsInformation(stack, list);

DetectorSettings settings = stack.get(ModDataComponents.DETECTOR_SETTINGS);
DetectorSettings settings = stack.getOrDefault(ModDataComponents.DETECTOR_SETTINGS, DetectorSettings.DEFAULT);
list.add(xlate("modularrouters.itemText.misc.redstoneLevel",
settings.signalLevel(),
xlate("modularrouters.itemText.misc.strongSignal." + settings.strongSignal()).withStyle(ChatFormatting.AQUA)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public DistributorModule() {
public void addSettingsInformation(ItemStack stack, List<Component> list) {
super.addSettingsInformation(stack, list);

DistributorSettings settings = stack.get(ModDataComponents.DISTRIBUTOR_SETTINGS);
DistributorSettings settings = stack.getOrDefault(ModDataComponents.DISTRIBUTOR_SETTINGS, DistributorSettings.DEFAULT);
list.add(ClientUtil.xlate("modularrouters.guiText.tooltip.distributor.strategy").withStyle(ChatFormatting.YELLOW)
.append(": ").withStyle(ChatFormatting.YELLOW)
.append(ClientUtil.xlate(settings.strategy().getTranslationKey())).withStyle(ChatFormatting.AQUA));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ public FlingerModule() {
public void addSettingsInformation(ItemStack stack, List<Component> list) {
super.addSettingsInformation(stack, list);

FlingerSettings settings = stack.get(ModDataComponents.FLINGER_SETTINGS);

FlingerSettings settings = stack.getOrDefault(ModDataComponents.FLINGER_SETTINGS, FlingerSettings.DEFAULT);
list.add(xlate("modularrouters.itemText.misc.flingerDetails",
colorText(settings.speed(), ChatFormatting.AQUA),
colorText(settings.pitch(), ChatFormatting.AQUA),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public void addSettingsInformation(ItemStack stack, List<Component> list) {
boolean xpMode = new AugmentItem.AugmentCounter(stack).getAugmentCount(ModItems.XP_VACUUM_AUGMENT) > 0;

if (xpMode) {
VacuumSettings settings = stack.get(ModDataComponents.VACUUM_SETTINGS);
VacuumSettings settings = stack.getOrDefault(ModDataComponents.VACUUM_SETTINGS, VacuumSettings.DEFAULT);
XPCollection.XPCollectionType type = settings.collectionType();
Component modName = Component.literal(ModNameCache.getModName(type.getModId())).withStyle(ChatFormatting.BLUE);
Component title = type.getDisplayName().plainCopy().withStyle(ChatFormatting.AQUA);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import java.util.List;

public class RegexFilter extends SmartFilterItem {
private static final String NBT_REGEX = "Regex";
public static final int MAX_SIZE = 6;

public RegexFilter() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
import java.util.List;

public class TagFilter extends SmartFilterItem {
private static final int MAX_SIZE = 6;

public static List<TagKey<Item>> getTagList(ItemStack filterStack) {
List<String> strings = filterStack.getOrDefault(ModDataComponents.FILTER_STRINGS, List.of());
return strings.stream()
Expand Down Expand Up @@ -51,37 +49,6 @@ public void addExtraInformation(ItemStack stack, List<Component> list) {
.toList());
}

// @Nullable
// @Override
// public GuiSyncMessage onReceiveSettingsMessage(Player player, FilterSettingsMessage message, ItemStack filterStack, ItemStack moduleStack) {
// List<TagKey<Item>> tagList;
// switch (message.op()) {
// case ADD_STRING -> {
// tagList = new ArrayList<>(getTagList(filterStack));
// String t = message.payload().getString("Tag");
// if (tagList.size() < MAX_SIZE && ResourceLocation.isValidResourceLocation(t)) {
// TagKey<Item> tag = TagKey.create(Registries.ITEM, new ResourceLocation(t));
// if (!tagList.contains(tag)) {
// tagList.add(tag);
// setTagList(filterStack, tagList);
// return new GuiSyncMessage(filterStack);
// }
// }
// }
// case REMOVE_AT -> {
// int pos = message.payload().getInt("Pos");
// tagList = new ArrayList<>(getTagList(filterStack));
// if (pos >= 0 && pos < tagList.size()) {
// tagList.remove(pos);
// setTagList(filterStack, tagList);
// return new GuiSyncMessage(filterStack);
// }
// }
// default -> ModularRouters.LOGGER.warn("received unexpected message type " + message.op() + " for " + filterStack);
// }
// return null;
// }

@Override
public int getSize(ItemStack filterStack) {
return getTagList(filterStack).size();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@
import net.minecraft.world.item.component.ResolvableProfile;
import net.minecraft.world.level.Level;

import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;

public class SecurityUpgrade extends UpgradeItem implements IPlayerOwned {
Expand Down Expand Up @@ -122,7 +119,8 @@ public InteractionResultHolder<ItemStack> use(Level world, Player player, Intera
ItemStack stack = player.getItemInHand(hand);
if (!player.getCommandSenderWorld().isClientSide && player.isSteppingCarefully()) {
setOwner(stack, player);
player.displayClientMessage(Component.translatable("modularrouters.itemText.security.owner", player.getDisplayName().getString()), false);
Component displayName = Objects.requireNonNullElse(player.getDisplayName(), Component.literal("?"));
player.displayClientMessage(Component.translatable("modularrouters.itemText.security.owner", displayName.getString()), false);
return InteractionResultHolder.success(stack);
}
return InteractionResultHolder.pass(stack);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
import static me.desht.modularrouters.client.util.ClientUtil.xlate;

public class SyncUpgrade extends UpgradeItem {
private static final String NBT_TUNING = "Tuning";

public SyncUpgrade() {
super(ModItems.defaultProps().component(ModDataComponents.SYNC_TUNING, 1));
}
Expand Down
35 changes: 4 additions & 31 deletions src/main/java/me/desht/modularrouters/logic/ModuleTarget.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import me.desht.modularrouters.client.util.ClientUtil;
import me.desht.modularrouters.util.MiscUtil;
import net.minecraft.ChatFormatting;
import net.minecraft.core.Direction;
Expand All @@ -13,16 +12,13 @@
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.Level;
import net.neoforged.neoforge.capabilities.BlockCapability;
import net.neoforged.neoforge.capabilities.BlockCapabilityCache;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.energy.IEnergyStorage;
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
import net.neoforged.neoforge.items.IItemHandler;

import javax.annotation.Nullable;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;

Expand All @@ -39,7 +35,6 @@ public class ModuleTarget {
private BlockCapabilityCache<IItemHandler,Direction> itemCapCache;
private BlockCapabilityCache<IFluidHandler,Direction> fluidCapCache;
private BlockCapabilityCache<IEnergyStorage,Direction> energyCapCache;
private final Map<BlockCapability<?, ?>, BlockCapabilityCache<?, ?>> capabilityCache = new IdentityHashMap<>();

public static final Codec<ModuleTarget> CODEC = RecordCodecBuilder.create(builder -> builder.group(
GlobalPos.CODEC.fieldOf("pos").forGetter(t -> t.gPos),
Expand Down Expand Up @@ -77,13 +72,13 @@ public boolean isSameWorld(ModuleTarget dst) {
}

/**
* Check for existence of an item handler client-side. The target dimension must be the same as the client's
* current dimension.
* Check for existence of an item handler. The target dimension must be the same as the level's current dimension.
*
* @return a (lazy optional) item handler
*/
public boolean hasItemHandlerClientSide() {
return ClientUtil.theClientLevel().getCapability(Capabilities.ItemHandler.BLOCK, gPos.pos(), face) != null;
public boolean hasItemHandler(Level level) {
return level.dimension().location().equals(gPos.dimension().location())
&& level.getCapability(Capabilities.ItemHandler.BLOCK, gPos.pos(), face) != null;
}

/**
Expand Down Expand Up @@ -135,28 +130,6 @@ public Optional<IEnergyStorage> getEnergyHandler() {
return Optional.ofNullable(energyCapCache.getCapability());
}

/**
* Get a cached capability of the module target.
*
* @param capability the capability
* @param context the capability context
* @return the capability
*/
@Nullable
public <T, C> T getCapability(BlockCapability<T, C> capability, @Nullable C context) {
var cached = (BlockCapabilityCache<T, C>)capabilityCache.get(capability);
if (cached != null && Objects.equals(cached.context(), context)) {
return cached.getCapability();
}
ServerLevel level = MiscUtil.getWorldForGlobalPos(gPos);
if (level == null) {
return null;
}
cached = BlockCapabilityCache.create(capability, level, gPos.pos(), context);
capabilityCache.put(capability, cached);
return cached.getCapability();
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@
import me.desht.modularrouters.util.BlockUtil;
import me.desht.modularrouters.util.TranslatableEnum;
import net.minecraft.core.BlockPos;
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.component.Unbreakable;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.LevelEvent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ protected int getBeamColor() {
return 0xFFC000;
}

PositionedItemHandler findTargetInventory(ModularRouterBlockEntity router) {
protected PositionedItemHandler findTargetInventory(ModularRouterBlockEntity router) {
ModuleTarget target = getEffectiveTarget(router);
if (target != null) {
return target.getItemHandler().map(h -> new PositionedItemHandler(target.gPos.pos(), h)).orElse(PositionedItemHandler.INVALID);
Expand All @@ -73,18 +73,19 @@ PositionedItemHandler findTargetInventory(ModularRouterBlockEntity router) {

@Override
public ModuleTarget getEffectiveTarget(ModularRouterBlockEntity router) {
BlockPos p0 = getTarget().gPos.pos();
BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(p0.getX(), p0.getY(), p0.getZ());
Direction face = getTarget().face;
Level level = router.nonNullLevel();
for (int i = 1; i <= getRange(); i++) {
if (level.getCapability(Capabilities.ItemHandler.BLOCK, pos, getTarget().face) != null) {
GlobalPos gPos = MiscUtil.makeGlobalPos(level, pos.immutable());
return new ModuleTarget(gPos, face, BlockUtil.getBlockName(level, pos));
} else if (!isPassable(level, pos, face)) {
return null;
if (getAbsoluteFacing() != null) {
BlockPos.MutableBlockPos pos = getTarget().gPos.pos().mutable();
Direction face = getTarget().face;
Level level = router.nonNullLevel();
for (int i = 1; i <= getRange(); i++) {
if (level.getCapability(Capabilities.ItemHandler.BLOCK, pos, getTarget().face) != null) {
GlobalPos gPos = MiscUtil.makeGlobalPos(level, pos.immutable());
return new ModuleTarget(gPos, face, BlockUtil.getBlockName(level, pos));
} else if (!isPassable(level, pos, face)) {
return null;
}
pos.move(getAbsoluteFacing());
}
pos.move(getAbsoluteFacing());
}
return null;
}
Expand Down
Loading

0 comments on commit 97bacaf

Please sign in to comment.