Skip to content

Commit

Permalink
Refactor blocking mode ignore item list (#678)
Browse files Browse the repository at this point in the history
  • Loading branch information
miozune authored Feb 17, 2025
1 parent 5509a0f commit 3674547
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 207 deletions.
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ dependencies {
runtimeOnlyNonPublishable('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
runtimeOnlyNonPublishable('com.github.GTNewHorizons:ThaumicEnergistics:1.7.6-GTNH:dev') { transitive = false }
runtimeOnlyNonPublishable('com.github.GTNewHorizons:AE2FluidCraft-Rework:1.4.29-gtnh:dev') { transitive = false }
runtimeOnlyNonPublishable("com.github.GTNewHorizons:BloodMagic:1.7.5") { transitive = false }
//runtimeOnlyNonPublishable("com.github.GTNewHorizons:BloodMagic:1.7.5") { transitive = false }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package appeng.api.features;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

/**
* Registry for items that are ignored by blocking mode of interfaces.
*/
public interface IBlockingModeIgnoreItemRegistry {

/**
* Registers item to be ignored by blocking mode of interfaces. Matches with any metadata.
*/
void register(Item item);

/**
* Registers item to be ignored by blocking mode of interfaces. Matches with the supplied metadata.
*/
void register(ItemStack itemStack);

/**
* Checks if given item should be ignored by blocking mode.
*/
boolean isIgnored(ItemStack itemStack);
}
8 changes: 8 additions & 0 deletions src/main/java/appeng/api/features/IRegistryContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ public interface IRegistryContainer {
*/
IInscriberRegistry inscriber();

/**
* Allows you to register certain class to be displayed on interface terminals.
*/
IInterfaceTerminalRegistry interfaceTerminal();

/**
Expand All @@ -85,6 +88,11 @@ public interface IRegistryContainer {
*/
IP2PTunnelRegistry p2pTunnel();

/**
* Allows you to register items that are ignored by blocking mode of interfaces.
*/
IBlockingModeIgnoreItemRegistry blockingModeIgnoreItem();

/**
* get access to the ammo registry.
*/
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/appeng/core/Registration.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@
import appeng.core.features.DefinitionConverter;
import appeng.core.features.IAEFeature;
import appeng.core.features.IFeatureHandler;
import appeng.core.features.registries.BlockingModeIgnoreItemRegistry;
import appeng.core.features.registries.P2PTunnelRegistry;
import appeng.core.features.registries.entries.BasicCellHandler;
import appeng.core.features.registries.entries.CreativeCellHandler;
import appeng.core.features.registries.entries.VoidCellHandler;
import appeng.core.localization.GuiText;
import appeng.core.localization.PlayerMessages;
import appeng.core.stats.PlayerStatsRegistration;
import appeng.helpers.BlockingModeIgnoreList;
import appeng.hooks.AETrading;
import appeng.hooks.SoundEventHandler;
import appeng.hooks.TickHandler;
Expand Down Expand Up @@ -859,7 +859,6 @@ void postInit(final FMLPostInitializationEvent event) {
/**
* Populate list of items that blocking mode should ignore
*/
BlockingModeIgnoreList.registerIgnoredMaterials();

BlockingModeIgnoreItemRegistry.instance().registerDefault();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package appeng.core.features.registries;

import java.util.HashSet;
import java.util.Set;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

import com.gtnewhorizon.gtnhlib.util.map.ItemStackMap;

import appeng.api.features.IBlockingModeIgnoreItemRegistry;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.registry.GameRegistry;

public class BlockingModeIgnoreItemRegistry implements IBlockingModeIgnoreItemRegistry {

private static BlockingModeIgnoreItemRegistry INSTANCE;

private final Set<Item> items = new HashSet<>();
private final ItemStackMap<Boolean> itemStacks = new ItemStackMap<>();

BlockingModeIgnoreItemRegistry() {
INSTANCE = this;
}

@Override
public void register(Item item) {
this.items.add(item);
}

@Override
public void register(ItemStack itemStack) {
this.itemStacks.put(itemStack, true);
}

@Override
public boolean isIgnored(ItemStack itemStack) {
return this.items.contains(itemStack.getItem()) || itemStacks.containsKey(itemStack);
}

public static BlockingModeIgnoreItemRegistry instance() {
return INSTANCE;
}

public void registerDefault() {
if (Loader.isModLoaded("AWWayofTime")) { // blood magic
register(GameRegistry.findItem("AWWayofTime", "weakBloodOrb"));
register(GameRegistry.findItem("AWWayofTime", "apprenticeBloodOrb"));
register(GameRegistry.findItem("AWWayofTime", "magicianBloodOrb"));
register(GameRegistry.findItem("AWWayofTime", "masterBloodOrb"));
register(GameRegistry.findItem("AWWayofTime", "archmageBloodOrb"));
register(GameRegistry.findItem("AWWayofTime", "transcendentBloodOrb"));

if (Loader.isModLoaded("Avaritia")) {
register(GameRegistry.findItem("Avaritia", "Orb_Armok"));
}

if (Loader.isModLoaded("ForbiddenMagic")) {
register(GameRegistry.findItem("ForbiddenMagic", "EldritchOrb"));
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package appeng.core.features.registries;

import appeng.api.features.IBlockingModeIgnoreItemRegistry;
import appeng.api.features.IGrinderRegistry;
import appeng.api.features.IInscriberRegistry;
import appeng.api.features.IInterfaceTerminalRegistry;
Expand Down Expand Up @@ -49,6 +50,7 @@ public class RegistryContainer implements IRegistryContainer {
private final IWirelessTermRegistry wireless = new WirelessRegistry();
private final IGridCacheRegistry gridCache = new GridCacheRegistry();
private final IP2PTunnelRegistry p2pTunnel = new P2PTunnelRegistry();
private final IBlockingModeIgnoreItemRegistry blockingModeIgnoreItem = new BlockingModeIgnoreItemRegistry();
private final IMovableRegistry movable = new MovableTileRegistry();
private final IMatterCannonAmmoRegistry matterCannonReg = new MatterCannonAmmoRegistry();
private final IPlayerRegistry playerRegistry = new PlayerRegistry();
Expand Down Expand Up @@ -114,6 +116,11 @@ public IP2PTunnelRegistry p2pTunnel() {
return this.p2pTunnel;
}

@Override
public IBlockingModeIgnoreItemRegistry blockingModeIgnoreItem() {
return this.blockingModeIgnoreItem;
}

@Override
public IMatterCannonAmmoRegistry matterCannon() {
return this.matterCannonReg;
Expand Down
200 changes: 0 additions & 200 deletions src/main/java/appeng/helpers/BlockingModeIgnoreList.java

This file was deleted.

Loading

0 comments on commit 3674547

Please sign in to comment.