narc0tiq / liquiduu Goto Github PK
View Code? Open in Web Editor NEWMinecraft mod for turning IC2's UU-matter into a Buildcraft-compatible liquid.
Home Page: http://www.narc.ro/liquid-uu
License: Other
Minecraft mod for turning IC2's UU-matter into a Buildcraft-compatible liquid.
Home Page: http://www.narc.ro/liquid-uu
License: Other
Nobody's complained yet, but having the item ID for liquid UU be hard-coded is not a good plan.
I've had two different reports from people trying to use the BC Refinery with a UUM conversion recipe (e.g. uum + biofuel = biofuel) and not being able to either get the second liquid in, or not being able to get the refinery to operate.
These may be two different issues, and they may be in Buildcraft rather than in anything LiquidUU is doing, but it needs to be reproduced and resolved -- which is a problem because I haven't been able to reproduce either issue.
As more information arrives, I'll collate it in here.
If the tank is emptied completely, the UU ball is destroyed, so a new set of character data should be generated when more UU is added.
I think it would be much better if, instead of being the liquid equivalent for the IC2 electrolyzer, the liquid electrolyzer would conver water and MJ to electrolyzed water, thus also providing a way to transfer MJ to EU and back!
If you use the hotbar number key shortcuts (i.e. 1-9) to take stuff out of the UUM slot of an accelerator, instead of getting a stack of however many you had had in the slot, you get a stack of 0 (!).
To reproduce:
Note that if you hit the number of a slot that already had something in it (not UUM), the item will be correctly rejected and returned to your inventory, but the stack of UUM that comes out of the accelerator slot will have a stack size of zero (tested by Ctrl+clicking with NEI active -- it filled the stack by giving me 64 UUM, not 63).
Further note that if you hit the number of a slot that already has UUM in it, the stack is destroyed altogether, and only the size 0 stack will reappear in your hotbar.
Now that the special renderer is displaying them, the character data and tank fill level need to be sent to the client immediately, as part of the description packet.
Need to be able to multiply Forestry liquids, as well as supporting Forestry cans (but not wax capsules of either kind!).
Do also look at ExtraBees for more liquids, possibly ThermalExpansion as well (IIRC, it has liquid redstone).
http://forum.industrial-craft.net/index.php?page=Thread&postID=86687#post86687
The major issue with just implementing that is it's not interesting -- the refinery already does this in a not-terribly-interesting way, so if we want to implement this, we need to give it a hook. Marked as needs-refinement for this reason.
At this point, I've written (parts of) three mods that all use mostly the same method to maintain TileEntity state: a class that knows how to put an ID, the TE coordinates, and whatever the TE wants to read or write into a Packet250CustomPayload and how to read same packet back. It's definitely something that can be externalized to reduce code duplication.
This is not actually a LiquidUU issue as much as a narc0tiq issue, but I only have trackers for the repos, so I may as well leave it here.
This one's a little bit pie-in-the-sky at the moment, as there is one piece of Buildcraft that I really don't want to lose (ISpecialInventory) and another piece that is exceptionally handy (TextureLiquidsFX).
The latter I could just duplicate in my own code, but the former is so very useful I don't want to lose it -- it'd be great if MinecraftForge/MinecraftForge#257 would get implemented. Guess I may have to do it myself and make a pull request, when I have the time (when's that going to be, Narc?).
Other than that, the only part of Buildcraft we're still using is the refinery recipe API, and we can ship that off to an integration submodule so that it simply won't add the conversion recipes if Buildcraft isn't around; with both Thermal Expansion and RedPower offering liquid integration stuff, we don't need BC as much anymore.
As a further activity, we might make an electric refinery to basically duplicate the BC refinery, but using handling more like the Liquid Electrolyzer (i.e. external tanks attached to the side), which should work really nicely with the Thermal Expansion portable tanks. Then you could still have the conversions and not have any Buildcraft at all!
The character array for accelerators needs to be saved to and loaded from NBT.
This should be really easy, but I've been coding for 10 hours. Fuck effort.
http://forum.industrial-craft.net/index.php?page=Thread&postID=87884#post87884
Probable issue: decimal separator not actually a period. Correct solution: ask the localization proxy for help.
The current version of LiquidUU produces an unavoidable exploit with the Seed Analyzer. When an unidentified seed is placed into the accelerator, the seed's statistics can be seen on the output slot's tooltip. The pseudo-identified seed can then be removed from the input slot at no cost.
Two methods of fixing this suggest themselves, both on InstantRecipe:
I'd do this right now, but I'm too think to tired straight at the moment.
Original suggestion from Eliav24 in the IC2 forum thread.
This might relate to the dropped UU assembler idea (issue #5), but to explain it simply -- if you have a UUM recipe that makes, e.g., 32 [item] from 4 UU, it should be possible to make just 1 [item] from 125 millibuckets, or 64 [item] from 8,000 mB.
A suggestion would be to tie in to the Forestry carpenter, but this produces the problem of actually entering a crafting recipe and deciding the correct output amount -- put simply, it's not designed for this purpose. Possibly the UUM assembler from GregTech does something similar, but I don't run GregTech and likely never will, so that's not a problem.
Name it... Fabricator? Give it about 8 buckets' worth of storage. Make the player have to put in a UU recipe (use fake items, though) to select the output item and then try to produce just 1 of the item at a time. Come to think of it, make it 9 buckets' worth of storage, so one can make diamonds, too.
Examples:
Right now (as of v0.6), I think seven liquids will do, so this is a future target.
As per Fenrir at http://forum.industrial-craft.net/index.php?page=Thread&postID=84725#post84725, see also the next post by Lefty suggesting the Forestry biogen as a pre-existing block that could just do it.
Alternately, electrolyzed water?
It would be a waste of effort to try to programatically determine a proper conversion ratio for new liquids, but we can certainly add them to a new section, conversion.custom, with the keys [liquidname].uu.cost
and [liquidname].output.amount
.
My current thinking is they should default to 0 and refuse to add an actual refinery recipe unless both were set to non-zero values.
Probably cut down on a lot of our integration requirements. Hell, maybe I should've implemented configurable conversions this way in the first place?
Need to make sure that check only recognizes tile entities we can actually work with. Try it on an automatic crafting table:
2012-11-16 21:50:15 [INFO] [STDERR] java.lang.NullPointerException
2012-11-16 21:50:15 [INFO] [STDERR] at ro.narc.liquiduu.TileEntityAccelerator.getActiveRecipe(TileEntityAccelerator.java:261)
Special-case it, of course. Presumably spawners should then spawn more frequently and in perfectly well-lit rooms.
The Thermal Expansion transposer recipe consumes a cell. Could you change this to not take cells.
CraftingManagers.transposerManager.addFillRecipe(120, null, Ic2Items.matter, CommonProxy.liquidUULiquidStack, false);
or return UU cells.
CraftingManagers.transposerManager.addFillRecipe(120, Ic2Items.cell, CommonProxy.cannedUUItemStack, CommonProxy.liquidUULiquidStack, false);
See http://forum.industrial-craft.net/index.php?page=Thread&postID=84693#post84693 for the initial post of this idea. Sided machine, wrenchable for rotation, possibly needing an upgrade in its target machine, smelts/macerates/whatever "instantly" (ala crafting table) using UU in the process.
MagusUnion suggests either a machine to accept (liquid) UU to assemble items or integration with the GregTech machine that does same for solid UUM. Likely to prioritize easy automated liquid-to-solid conversion over this, though.
Tested both in SSP and SMP, Minecraft 1.4.5, etc..
1.4.5 changed the rules for tooltip display. It'll work if you click (though it won't reposition... or update the amount, either).
There used to be four issues for this, but Github lets us make these checkbox thingies now:
When I wrench the LE, it drops a whole stack(64) LEs!
I saw this IC2 forum thread and thought that wasn't a bad idea at all. Bit reminiscent of the Thaumcraft 2 enchanter. Needs careful balancing, though.
Converting liquids to solids seems to be a fairly rarely-desired operation, so not many mods have options for this. Consider making a machine that uses EUs to do the job.
Note, the Forestry squeezer and bottler work for this, but use MJs rather than EUs (and Forestry itself is optional).
Silly idea: the accelerator connected to a massfab might do the bottling operation (i.e. empty cells to UUM or empty cans to UUM cans). Investigate later.
I don't actually have any ideas for what you could make this way, but it's an option so we might as well consider it.
There are several suggestions that, by themselves, are not terribly feasible or interesting, but merging them might lead to something good:
UI-wise, I see this as being very much like the carpenter: a liquid tank, a 3x3 crafting grid, and an output slot.
The duplication recipes may end up being also present as accelerator recipes (consuming liquid UUM out of the new machine's tank(s) in the process).
The UUM crafting would require the normal crafting recipe present, but the input solid UUM will not be consumed (only liquid UU out of the tank).
The assembly table recipes would be shapeless (as they are in the assy table itself) and the fabber recipes shaped; the input materials would be consumed.
Some recipes may consume many work cycles and drain liquid UU gradually; in those cases, we want to be certain to keep the progress already made; if possible, we want to lock the crafting slots and provide an "abort" button, allowing us to try to refund some of the UUM used in the process.
Finally, liquid input could be done by attaching ITankContainers to the sides of the machine, with the sides being configurable, like in the liquid electrolyzer. This also suggests several of these carpenter-equivalents could share a liquid pool if they're next to one another; a refinement that may eventually be ported to the accelerators, as well.
Not sure of the mechanics, but it's an interesting suggestion.
It didn't seem like a big deal, but since I've got two people asking for it and probably 20 more who won't post anything also wishing for it, I'm going to go ahead and implement this.
So, it's not possible to allow the liquid transposer to consume UU without giving you some kind of ouput, but it is possible to prevent it from consuming UU in the first place while allowing it to fill cells with liquid UU to make the solid stuff. I'm leaning towards implementing this (actually already done in f167c73), with GregT being in favor of same.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.