Code Monkey home page Code Monkey logo

liquiduu's People

Contributors

narc0tiq avatar viliml avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

viliml chentao807

liquiduu's Issues

Refinery does not work for liquid UUM conversion for some people

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.

Use the liquid electrolyzer to store BC MJ

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!

Stack destruction in SlotUUM

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:

  1. Spawn a stack of 64 UUM and put it in the accelerator
  2. Hover your mouse over the accelerator UUM slot
  3. Hit 1-9 on the main keyboard (not the keypad)

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.

Forestry integration

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).

Make PacketMachineState an external dependency, create NarcLib.

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.

Decouple from Buildcraft

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!

NBT save/load for character data

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.

API: Support for not displaying the item produced

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:

  1. Add a "hiddenOutput" flag, which causes the UI to display the output as ? with a tooltip of "Unknown output."
  2. Add a "displayOutput" ItemStack, which will be used for display only, in place of output.

A way to craft more (or less) of a normal UUM recipe at a time, using fractional UU.

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.

Investigate other mods' liquids

Examples:

  • ExtraBees adds three liquids (acid, poison, glacial water);
  • Railcraft adds creosote oil;
  • IC2 has coolant as a liquid;
  • Forestry has crushed ice (I skipped it for the initial implementation, but should still be considered);
  • Forestry also has milk, and I totally forgot about it. It's an option.

Right now (as of v0.6), I think seven liquids will do, so this is a future target.

Browse Liquid Dictionary and add config for custom liquids

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?

Connected Machine: Chest

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)

Thermal Expansion transposer manager fill recipe

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);

UU assembler? GregTech integration?

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.

Accelerator special renderer

There used to be four issues for this, but Github lets us make these checkbox thingies now:

  • Add a normal renderer: the special renderer covers the ball of UU itself, but there are still two pieces that can be covered better by a normal renderer:
    • A 2-pixel-wide base plate on the side where a machine is connected.
    • A single-pixel-wide tube connecting the center of the base plate to the center of the UU ball (0.5,0.5,0.5).
  • Include the special renderer's character data in the NBT save/load
  • Include the special renderer's character data, as well as the internal tank fill level in the block description packet. Don't forget to mark block for update once in a while as the fill level changes.
  • Regenerate the special renderer's character data if it's not available for any reason (e.g. the tank was emptied)

Electric bottler/unbottler?

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.

Perhaps a carpenter-equivalent machine, EU-powered?

There are several suggestions that, by themselves, are not terribly feasible or interesting, but merging them might lead to something good:

  • unlimited item duplication (require 2 of the original item, consume massive amounts of UU, but allow you to duplicate just about anything -- perhaps use electrolyzed/charged UU for this).
  • crafting 1 of anything that can be made with UUM instead of the amount in the solid UUM recipe (rounding in the less-favorable direction where necessary; it's not going to make much difference, though). See also #23.
  • assembly table/thermionic fabricator recipes, using liquid UU instead of their normal prerequisites. See also #8.
  • Other carpenter-like recipes, with or without consuming the input items.

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.

Integrate with Thermal Expansion to ask it not to make empty cells out of UU.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.