Comments (21)
+1
Although I've been told it could never work with RP for some reason that never made any sense to me.
from minecraftforge.
I'd like to see this as well. ISidedInventory is very limiting, especially compared to the liquid API.
from minecraftforge.
Why hasn't this been added?
from minecraftforge.
Because its hated passionately by some very vocal people.
from minecraftforge.
Who would that be? Eloraam?
from minecraftforge.
The current, general concept of the inserter getting to choose what it gets to put into my blocks/machines - without some significant hackery on my part - has me in favour of this interface.
I'd like to hear the reasoning of these seemingly vocal people. "I hate it" doesn't hold much water, by itself.
from minecraftforge.
I'd like it if extractItem took a parameter that could filter the extracted items, something like this:
public interface IStackFilter {boolean acceptsStack(ItemStack stack);}
ItemStack[] extractItem(boolean, ForgeDirection, int, IStackFilter);
Still not seeing how you could hate it, though.
from minecraftforge.
I have an idea..
from minecraftforge.
So did I, immibis@ab7f9be
ICustomInventory is the equivalent of ISpecialInventory.
ILinearInventory is the equivalent of ISidedInventory/IInventory. Inventories can be one or both (or neither, if something else is added later).
(Edit: ILinearInventory can do more than IInventory and is less retarded - I'm not duplicating it for no reason, and InventoryAdapters has a method to create ILinearInventory wrappers for IInventory objects)
from minecraftforge.
Immibis, bear in mind isided is in vanilla in 1.5..
from minecraftforge.
There was talk of creating a pluginable mediator object that could allow inventories to interact with each other, even if they use different interfaces. I think it was @ScottKillen who had the idea.
from minecraftforge.
@CovertJaguar My aged brain does not recall it, but I'll be happy to look into it. 😄
from minecraftforge.
Ah, no it was xcomp. My bad.
from minecraftforge.
Also it would appear that Overmind has a solution.
from minecraftforge.
Yes, well there have been disagreements over his solutions in the past.
from minecraftforge.
@cpw, are you going to clue us in on your idea anytime soon, or should we just keep throwing our own ideas at the wall to see if one sticks?
As I see it, the issue is basically a disagreement on what parts of the system should be "smart". Buildcraft provides an (essentially) dumb transport system and assumes that storage blocks can be smart, and so provides ISpecialInventory to allow them to define custom behaviour. RedPower, on the other hand, provides a smart transport system, and assumes that storage blocks are dumb containers, to be rifled through at will. Neither approach is good or bad, simply different architectural decisions.
Looking at it in that light, including ISpecialInventory in its current state would be a Bad Idea, as it provides no suitable interface for RedPower-style transport architecture. As it stands, we have four possible pairings, three of which are solved adequately. ISidedInventory handles Dumb->Dumb and Smart->Dumb transport->storage pairings, while ISpecialInventory handles Dumb->Smart pairings. We need a way to handle Smart->Smart pairings, and might as well absorb ISpecialInventory's Dumb->Smart support in the process, to keep the clutter to a minimum.
So, really, the question to ask is this: What API does @Eloraam need to be able to talk to a smart storage block? I could make some reasonable guesses, like the ability to ask how many it has of a particular item, or how many (more) of that item it can store. But, really, I think the right person to ask the question of is the lady herself, because (for reasons I hope are obvious) nobody else is better qualified to tell us what would work best for her.
from minecraftforge.
I am of the opinion that we do whatever we feel best because of 1.5. And then, Elo will probably fix her side when she updates for 1.5.
from minecraftforge.
I think we wait and see what 1.5.1 brings..
from minecraftforge.
That statement is both interesting and worrying, cpw. :P
from minecraftforge.
Seems this never got stable enough for everyone to accept. Feel free to try again with actual code and documentation/implementation next time.
from minecraftforge.
Meh, its been stable for a year or something, people just don't like it. But its not really needed anymore anyway.
from minecraftforge.
Related Issues (20)
- Forge 47.2.0 is incompatible with GraalVM HOT 3
- world/serverconfig configs keep resetting to default every time after restart, how can I disable this? HOT 1
- Minecraft
- [1.20.6] Can't open villager GUI
- [1.20.6] `EventNetworkChannel` not working HOT 1
- [SECURITY] Vulnerabilities in Forge 47.2.X HOT 1
- [1.20.6] ATs still use SRG mappings HOT 1
- Vault Block crash in 1.20.6 HOT 2
- [1.20.6] getArmorTexture bug HOT 1
- [1.20.6] DeferredRegister for ArmorMaterial is broken HOT 2
- update mcp for 1.20.6 HOT 1
- finalizeSpawn() is always passed null SpawnGroupData
- forge 1.20.6 patches the stencil enable into the wrong spot
- [1.20.6] Shield does not work HOT 3
- Forge Crashes HOT 1
- Crash when mods folder contains jar file without mods.toml HOT 6
- The game crashed whilst unexpected error Error: java.lang.IllegalStateException: Missing registry: ResourceKey[minecraft:root / minecraft:dimension_type] HOT 1
- [1.20.6] Potion Brewing is broken
- [1.20.6] Cancelling MobSpawnEvent.FinalizeSpawn for a spawner causes NullPointerException
- 1.20.1 Forge Redstone differs from Vanilla and Fabric HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minecraftforge.