Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
19f994b
added logic / walkers / still imcomplete
alone13141 Apr 16, 2026
668ecf8
PLAESE IDK
alone13141 Apr 16, 2026
a2ec6f5
Fixed reviewed comments
alone13141 Apr 25, 2026
8eb5158
Merging with upstream
Cardinalstars May 7, 2026
6edd5d7
Pretty major refactor to allow stuff for FMP. Still a lot to be done,…
Cardinalstars May 15, 2026
d9b0ddc
Collision, external connections, and client syncing done I think. I k…
Cardinalstars May 15, 2026
1cd08da
First node transfer logic done.
Cardinalstars May 17, 2026
e119714
Finished Crossover pipes
Cardinalstars May 25, 2026
3459375
Sorting pipes done
Cardinalstars May 25, 2026
dc5cbfa
Rationing pipe logic + itemTransferNode insertion logic done
Cardinalstars May 29, 2026
ef1037b
Fuck my life but I think it's finally working only like 8 hours of le…
Cardinalstars May 31, 2026
ebea9e8
Slot locking
Cardinalstars May 31, 2026
3a918a4
NBT aware recipes for filters + phantom slots for filters
Cardinalstars Jun 3, 2026
dfe82dc
A shit-load more filter dogshit.
Cardinalstars Jun 4, 2026
a8d62a9
Merge branch 'transfer-nodes' into transfer-nodes
Cardinalstars Jun 4, 2026
b9e3c98
Naming + dev art
Cardinalstars Jun 6, 2026
18ddf2b
Filters maybe working. Need to test more.
Cardinalstars Jun 6, 2026
ab8566b
Merge branch 'transfer-nodes' of https://github.com/alone13141/Utilit…
Cardinalstars Jun 6, 2026
961d746
Fuck my life getting the slots to tint seems to be fucking impossible.
Cardinalstars Jun 7, 2026
cc961b9
Finally got the slots coloured
Cardinalstars Jun 8, 2026
62abb1d
Basic filter functionality working, haven't tested advanced functiona…
Cardinalstars Jun 8, 2026
2ed9b56
Fixing edge case
Cardinalstars Jun 9, 2026
df3d7db
Pretty sure filter items should work now too. Just need to do more te…
Cardinalstars Jun 13, 2026
190c172
Mod sorting pipe done + fixes for filter pipe
Cardinalstars Jun 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ dependencies {
// TODO: remove MUI1 dep when the implicit dependency
// TODO: in IItemHandlerModifiable is removed
api("com.github.GTNewHorizons:ModularUI:1.3.1:dev")
api("com.github.GTNewHorizons:ModularUI2:2.3.23-1.7.10:dev")
api("com.github.GTNewHorizons:ModularUI2:2.3.63-1.7.10:dev")
api("com.github.GTNewHorizons:CraftTweaker:3.4.2:dev")
api('curse.maven:cofh-lib-220333:2388748')
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
Expand Down
Empty file modified gradlew
100755 → 100644
Comment thread
Cardinalstars marked this conversation as resolved.
Empty file.
22 changes: 17 additions & 5 deletions src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package com.fouristhenumber.utilitiesinexcess;

import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockCrossoverPipe;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockFilterPipe;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockHyperRationingPipe;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockModSortingPipe;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockRationingPipe;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockSortingPipe;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
Expand Down Expand Up @@ -53,13 +59,13 @@
import com.fouristhenumber.utilitiesinexcess.common.blocks.generators.BlockRedstoneGenerator;
import com.fouristhenumber.utilitiesinexcess.common.blocks.generators.BlockSolarGenerator;
import com.fouristhenumber.utilitiesinexcess.common.blocks.generators.BlockTNTGenerator;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockRetrievalNode;
//import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockRetrievalNode;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockRetrievalNodeFluid;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockTransferNode;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockTransferNodeEnergy;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockTransferNodeFluid;
//import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockTransferNodeFluid;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockTransferNodeHyperEnergy;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.BlockTransferPipe;
import com.fouristhenumber.utilitiesinexcess.common.blocks.transfer.pipe.BlockTransferPipe;
import com.fouristhenumber.utilitiesinexcess.config.blocks.BlockConfig;
import com.fouristhenumber.utilitiesinexcess.config.blocks.CursedEarthConfig;
import com.fouristhenumber.utilitiesinexcess.config.blocks.EnderLotusConfig;
Expand Down Expand Up @@ -166,11 +172,17 @@ public enum ModBlocks {
DECORATIVE_BLOCKS(BlockConfig.enableDecorativeBlocks, new BlockDecorative(), BlockDecorative.ItemBlockDecorative.class, "decorative_block"),
//TODO: Config
TRANSFER_PIPE(true, new BlockTransferPipe(), "transfer_pipe"),
CROSSOVER_PIPE(true, new BlockCrossoverPipe(), "crossover_pipe"),
SORTING_PIPE(true, new BlockSortingPipe(), "sorting_pipe"),
MOD_SORTING_PIPE(true, new BlockModSortingPipe(), "mod_sorting_pipe"),
RATIONING_PIPE(true, new BlockRationingPipe(), "rationing_pipe"),
HYPER_RATIONING_PIPE(true, new BlockHyperRationingPipe(), "hyper_rationing_pipe"),
FILTER_PIPE(true, new BlockFilterPipe(), "filter_pipe"),
TRANSFER_NODE(true, new BlockTransferNode(), "transfer_node"),
TRANSFER_NODE_FLUID(true, new BlockTransferNodeFluid(), "transfer_node_fluid"),
// TRANSFER_NODE_FLUID(true, new BlockTransferNodeFluid(), "transfer_node_fluid"),
TRANSFER_NODE_ENERGY(true, new BlockTransferNodeEnergy(), "transfer_node_energy"),
TRANSFER_NODE_HYPER_ENERGY(true, new BlockTransferNodeHyperEnergy(), "transfer_node_hyper_energy"),
RETRIEVAL_NODE(true, new BlockRetrievalNode(), "retrieval_node"),
// RETRIEVAL_NODE(true, new BlockRetrievalNode(), "retrieval_node"),
RETRIEVAL_NODE_FLUID(true, new BlockRetrievalNodeFluid(), "retrieval_node_fluid"),
CHANDELIER(BlockConfig.chandelier.enableChandelier, new BlockChandelier(), BlockChandelier.ItemBlockChandelier.class, "chandelier"),
GIGA_TORCH(BlockConfig.gigaTorch.enableGigaTorch, new BlockGigaTorch(), BlockGigaTorch.ItemBlockGigaTorch.class, "giga_torch"),
Expand Down
29 changes: 25 additions & 4 deletions src/main/java/com/fouristhenumber/utilitiesinexcess/ModItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import com.fouristhenumber.utilitiesinexcess.config.items.unstabletools.ReversingHoeConfig;

import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.OreDictionary;

// Credit to Et Futurum (Requiem)
public enum ModItems {
Expand All @@ -61,7 +62,7 @@ public enum ModItems {
INVERSION_SIGIL_ACTIVE(InversionConfig.enableInversionSigil, new ItemInversionSigilActive(), "inversion_sigil_active"),
PSEUDO_INVERSION_SIGIL(InversionConfig.enableInversionSigil, new ItemPseudoInversionSigil(), "pseudo_inversion_sigil"),
INVERTED_INGOT(InversionConfig.enableInvertedIngot, new ItemInvertedIngot(), "inverted_ingot"),
INVERTED_NUGGET(InversionConfig.enableInvertedIngot, new ItemInvertedIngot.InvertedNugget(), "inverted_nugget"),
INVERTED_NUGGET(InversionConfig.enableInvertedIngot, new ItemInvertedIngot.InvertedNugget(), "inverted_nugget", "nuggetInverted"),
ARCHITECTS_WAND(ItemConfig.enableArchitectsWand, new ItemArchitectsWand(ItemConfig.architectsWandBuildLimit).setTextureName("utilitiesinexcess:architects_wand"), "architects_wand"),
SUPER_ARCHITECTS_WAND(ItemConfig.enableSuperArchitectsWand, new ItemArchitectsWand(ItemConfig.superArchitectsWandBuildLimit).setTextureName("utilitiesinexcess:super_architects_wand"), "super_architects_wand"),
BEDROCKIUM_INGOT(ItemConfig.enableBedrockium, new ItemBedrockiumIngot().setUnlocalizedName("bedrockium_ingot").setTextureName("utilitiesinexcess:bedrockium_ingot"), "bedrockium_ingot"),
Expand Down Expand Up @@ -91,13 +92,21 @@ public static void init() {
private final Item theItem;
private final String name;
private final ItemDisabled disabledVersion;
private final String[] oreDictNames;

ModItems(boolean enabled, Item item, String name) {
ModItems(boolean enabled, Item item, String name, String... oreDictNames) {
this.isEnabled = enabled;
theItem = item;
this.name = name;
if (ItemConfig.registerDisabledItems) disabledVersion = new ItemDisabled(theItem);
else disabledVersion = null;
this.oreDictNames = oreDictNames;
if (ItemConfig.registerDisabledItems)
{
disabledVersion = new ItemDisabled(theItem);
}
else
{
disabledVersion = null;
}
}

public boolean isEnabled() {
Expand All @@ -119,4 +128,16 @@ public ItemStack newItemStack(int count) {
public ItemStack newItemStack(int count, int meta) {
return new ItemStack(this.get(), count, meta);
}

public static void registerOreDict() {
for (ModItems item : VALUES) {
if (!item.isEnabled()) continue;
if (item.oreDictNames == null) continue;

for (String oreName : item.oreDictNames) {
OreDictionary.registerOre(oreName, item.newItemStack());
}
}
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
package com.fouristhenumber.utilitiesinexcess;

import codechicken.lib.world.TileChunkLoadHook;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntityCrossoverPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntityFilterPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntityHyperRationingPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntityModSortingPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntityRationingPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntitySortingPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.pipe.TileEntityTransferPipe;
import com.fouristhenumber.utilitiesinexcess.utils.ColoredSlots;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
Expand Down Expand Up @@ -50,9 +59,7 @@
import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityRedstoneGenerator;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntitySolarGenerator;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.generators.TileEntityTNTGenerator;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNode;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNodeFluid;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferPipe;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityItemTransferNode;
import com.fouristhenumber.utilitiesinexcess.common.worldgen.WorldGenEnderLotus;
import com.fouristhenumber.utilitiesinexcess.compat.ForgeMultipart.FMPRecipeLoader;
import com.fouristhenumber.utilitiesinexcess.compat.ForgeMultipart.multipart.Content;
Expand Down Expand Up @@ -113,7 +120,7 @@ public void preInit(FMLPreInitializationEvent event) {
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
proxy.init(event);

TileChunkLoadHook.init();
RecipeLoader.run();

MinecraftForge.EVENT_BUS.register(new ForgeEventHandler());
Expand Down Expand Up @@ -164,8 +171,15 @@ public void init(FMLInitializationEvent event) {
GameRegistry.registerTileEntity(TileEntityPacifistsBench.class, "TileEntityPacifistsBenchUIE");
GameRegistry.registerTileEntity(TileEntityTradingPost.class, "TileEntityTradingPostUIE");
GameRegistry.registerTileEntity(TileEntityTransferPipe.class, "TileEntityTransferPipeUIE");
GameRegistry.registerTileEntity(TileEntityTransferNode.class, "TileEntityTransferNodeUIE");
GameRegistry.registerTileEntity(TileEntityTransferNodeFluid.class, "TileEntityTransferNodeFluidUIE");
GameRegistry.registerTileEntity(TileEntityCrossoverPipe.class, "TileEntityCrossoverPipeUIE");
GameRegistry.registerTileEntity(TileEntitySortingPipe.class, "TileEntitySortingPipeUIE");
GameRegistry.registerTileEntity(TileEntityRationingPipe.class, "TileEntityRationingPipeUIE");
GameRegistry.registerTileEntity(TileEntityHyperRationingPipe.class, "TileEntityHyperRationingPipe");
GameRegistry.registerTileEntity(TileEntityFilterPipe.class, "TileEntityFilterPipe");
GameRegistry.registerTileEntity(TileEntityModSortingPipe.class, "TileEntityModSortingPipe");
// GameRegistry.registerTileEntity(TileEntityRetrievalNode.class,"TileEntityRetrievalNodeUIE"); // not sure if i did the naming correctly
GameRegistry.registerTileEntity(TileEntityItemTransferNode.class, "TileEntityTransferNodeUIE");
// GameRegistry.registerTileEntity(TileEntityTransferNodeFluid.class, "TileEntityTransferNodeFluidUIE");

lapisAetheriusRenderID = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new LapisAetheriusRenderer());
Expand All @@ -178,6 +192,8 @@ public void init(FMLInitializationEvent event) {
transferNodeRenderID = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new TransferNodeRenderer());

ColoredSlots.init();

GameRegistry.registerWorldGenerator(new WorldGenEnderLotus(), 10);

if (ModItems.ENDER_LOTUS_SEED.isEnabled()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
package com.fouristhenumber.utilitiesinexcess.common.blocks.transfer;

import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNode;

public class BlockRetrievalNode extends BlockTransferNodeBase {

public BlockRetrievalNode() {
super();
setBlockName("retrieval_node");
}

@Override
public String getTopIcon() {
return "utilitiesinexcess:retrieval_node_top";
}

// TODO: new TE
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityTransferNode();
}
}
//package com.fouristhenumber.utilitiesinexcess.common.blocks.transfer;
//
//import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityRetrievalNode;
//import net.minecraft.tileentity.TileEntity;
//import net.minecraft.world.World;
//
//import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNode;
//
//public class BlockRetrievalNode extends BlockTransferNodeBase {
//
// public BlockRetrievalNode() {
// super();
// setBlockName("retrieval_node");
// }
//
// @Override
// public String getTopIcon() {
// return "utilitiesinexcess:retrieval_node_top";
// }
//
// // TODO: new TE
// // yes zir!
// @Override
// public TileEntity createNewTileEntity(World world, int metadata) {
// return new TileEntityRetrievalNode();
// }
//}
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.fouristhenumber.utilitiesinexcess.common.blocks.transfer;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityItemTransferNode;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNode;

public class BlockRetrievalNodeFluid extends BlockTransferNodeBase {

public BlockRetrievalNodeFluid() {
Expand All @@ -20,6 +19,6 @@ public String getTopIcon() {
// TODO: new TE
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityTransferNode();
return new TileEntityItemTransferNode();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.fouristhenumber.utilitiesinexcess.common.blocks.transfer;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.ITransferNetworkComponent;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNodeBase;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

public abstract class BlockTransferBase extends BlockContainer
{
protected BlockTransferBase(Material mat)
{
super(mat);
}

@Override
public void onNeighborBlockChange(World worldIn, int x, int y, int z, Block neighbor)
{
TileEntity te = worldIn.getTileEntity(x, y, z);

if (te instanceof ITransferNetworkComponent component)
{
component.updateExternalConnections();
if (component instanceof TileEntityTransferNodeBase nodeComponent)
{
nodeComponent.updateSourceInventory();
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNode;
import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityItemTransferNode;

public class BlockTransferNode extends BlockTransferNodeBase {

Expand All @@ -14,6 +14,6 @@ public BlockTransferNode() {

@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityTransferNode();
return new TileEntityItemTransferNode();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static com.fouristhenumber.utilitiesinexcess.UtilitiesInExcess.transferNodeRenderID;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.ITransferNetworkComponent;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
Expand All @@ -21,18 +22,13 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockTransferNodeBase extends BlockContainer {
public abstract class BlockTransferNodeBase extends BlockTransferBase {

protected BlockTransferNodeBase() {
super(Material.iron);
setBlockTextureName(getTopIcon());
}

@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
return null;
}

@Override
public boolean renderAsNormalBlock() {
return false;
Expand All @@ -56,18 +52,6 @@ public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer
return true;
}

protected void updateConnections(World world, int x, int y, int z) {
if (!world.isRemote) {
TileEntityTransferNodeBase te = (TileEntityTransferNodeBase) world.getTileEntity(x, y, z);
if (te != null) {
boolean changed = te.updateConnections(world, x, y, z);
if (changed) {
world.markBlockForUpdate(x, y, z);
}
}
}
}

@Override
public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int meta) {
return ForgeDirection.getOrientation(side)
Expand All @@ -80,12 +64,6 @@ public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase p
super.onBlockPlacedBy(world, x, y, z, placer, stack);
int meta = world.getBlockMetadata(x, y, z);
world.setBlockMetadataWithNotify(x, y, z, meta, 2);
updateConnections(world, x, y, z);
}

@Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block neighbor) {
updateConnections(world, x, y, z);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.fouristhenumber.utilitiesinexcess.common.blocks.transfer;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityItemTransferNode;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import com.fouristhenumber.utilitiesinexcess.common.tileentities.transfer.TileEntityTransferNode;

public class BlockTransferNodeEnergy extends BlockTransferNodeBase {

public BlockTransferNodeEnergy() {
Expand All @@ -19,7 +18,8 @@ public String getTopIcon() {

// TODO: new TE
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityTransferNode();
public TileEntity createNewTileEntity(World world, int metadata)
{
return new TileEntityItemTransferNode();
}
}
Loading