Jump to content

[1.6.x] [ALPHA] Craftin' Cheap (Ingame Recipe Editor) (September 23)


jakj

Recommended Posts

I'm still working on this, but I'm pretty close to the initial beta release which I'm aiming for soon, and I need to go into town for a bit, so here's a preview. It's...hmm, 85%-90% functional, compared to what the 0.0.0.0 release will have.

(This thread will be converted into the release thread at that time, so all discussion can go here.)

QUICK FAQ

  • Yes, it will be ported to 1.5.
  • Yes, it will support other types of recipes (such as furnaces and SOME mod systems).
  • Yes, the interface and such will be improved over time.
  • Yes, tooltips will be added.
  • Yes, there eventually will be better feedback for adding/removing overrides as well as viewing existing ones.
  • Yes, you will be able to control who can use the command.
  • Yes, it will be under the same license as RIM (i.e., do WTF you want).
  • No, I have not tested this on a dedicated server yet.
  • The name is an homage to http://en.wikipedia.org/wiki/Cookin'_Cheap http://cookincheap.net/ which was made near my hometown as a child.
  • No, I haven't tested the forgedictionary/nodamagetool matching modes yet, but in theory they should work.
  • Overrides are saved in the WORLD file, which means each savefile has its own, and if you open/close different worlds, it will use whatever overrides are set for that world. If you connect to a remote server, your recipes will not change on your local machine, but they will on the server, so the mod will still work but there will be slight delays as the wrong/right outputs for recipes sync each time you change the crafting grid.

What works now:

  • Type the command "/craftincheap" (or whatever you have your slash rebound to). There are no parameters. Right now, anyone can use it.
  • That is the only GUI in the mod.
  • The red button in the top-right selects which types of recipes to edit. Right now, the only mode is crafting recipes.
  • The bottom slots are your inventory. Click a slot (mouse or touchscreen, doesn't matter) to make it the active slot. If the slot has a big red X over it, that means the item in that slot has an NBT compound and can't be used in the mod (yet).
  • The nine slots in the top-left are your crafting grid. Click one of the slots, and it will take the item that's in the active inventory slot.
  • The right big slot is the crafting output (useful when adding recipes).
  • The blue X clears the slot.
  • A slot that has a pair of blue buttons, one of which has an anvil on it, means that item is in the forge ore dictionary. Select the button with the anvil to make the recipe a forge-ore recipe instead of an exact-match recipe.
  • A slot that has a pair of blue buttons, one of which has a shovel on it, means that item is a tool (stack size of 1 and can take damage). Select the button with the shovel to make the recipe use the tool no matter its damage level, or select the plain blue button to make it match exactly that damage level.
  • The up and down arrows next to the output slot control the quantity of that slot, +/- 1 and +/- 10.
  • The green buttons mean shapeless (plain) or shaped (dots on it).
  • The button with the plus means "add override": To add a new recipe, fill in the pattern and the output; To blank out a vanilla recipe so it can't be crafted, fill in the pattern but leave the output blank.
  • The button with the minus means "remove override": Fill in the pattern the same way as you filled it out to add the override (result slot is ignored), then click the minus, and it will remove the override that matches the pattern.

What doesn't work now:

  • Needs tooltips, mainly, and more bugtesting as well as testing on a dedicated server.

https://www.dropbox.com/s/cy1kdirvwdn8qn6/CraftinCheapAlpha.zip

Link to comment
Share on other sites

This looks very useful. I do have a feature request though: Some way to add intermediate items for crafting chains. An item with a custom icon that doesn't do anything except get used in recipes. I'm not sure how well that could work with the whole 'do it all ingame' bit though.

EDIT: I think this could be done if you add a single item at the start and use its metadata to set which if the chain items created it is. That would only leave the issue of getting its texture, which you could send at runtime to clients so the image(s) get distributed throughout the clients. Then the whole thing (except for selecting the initial image) could be done ingame.

Link to comment
Share on other sites

  • 4 weeks later...

I can throw it on there to make it easier for you, sure. If you can handle my alien whitespacing style. :D I think I gave ChickenBones hives. Gimme a few days.

Client/server sync eventually, but for starters it functions without it.

Link to comment
Share on other sites

Not gonna lie, I am a bit worried about that...

CB used some sort of auto-formatter in Eclipse that cleaned it up to the "normal" style. If it reeeeeally is a problem, I can write a few sed filters to adjust it, but since you're at least 86 times the programmer that I am, I think you can handle it.

I'm going to put up my "internal build system" as well as the already-processed source files for each package, so you can choose whichever suits you best. (The "internal build system" uses a pseudo-preprocessor that lets me write code more easily. The already-processed source is the normal stuff that gets passed right into Java, so it's exactly what you'd expect to see.)

Link to comment
Share on other sites

okay. I am rapidly gaining stuff to do again so I don't know when I'll start to work on it >.< the main reason I'm interested in this is so that I don't have to worry about maintaining 5 different sets of recipes for MPS because people can just change their recipe configs accordingly. That way I can just provide 'example config files' and people can maintain them who are savvy enough to edit them but not savvy enough to edit the java spaghetticode of my recipe manager :P

Link to comment
Share on other sites

okay. I am rapidly gaining stuff to do again so I don't know when I'll start to work on it >.< the main reason I'm interested in this is so that I don't have to worry about maintaining 5 different sets of recipes for MPS because people can just change their recipe configs accordingly. That way I can just provide 'example config files' and people who are savvy enough to edit them but not savvy enough to edit the java spaghetticode of my recipe manager can maintain them :P

Well, what I'd likely do is instead provide some sort of export/import option. On exporting, it would convert each block/item ID into a class name, and then on import it would search through registered blocks/items for something with the matching class name.

Alternately, there's going to be little up and down arrows which will cycle through the existing recipes for a particular device, so if they want to change your recipe for Explosive Space Modulators to take six Illudium Q-36 instead of ten, they would click on the tab that says "MPS Crafting Doohickey-Whatsits", and then click on the arrows until they come to the ESM recipe, click on the Illudium, and then click the down arrow for Illudium 4 times, then hit "override", and it will add an override for that specific recipe.

So, you can either provide alternate configs yourself (like for "difficulty levels"), or else they can just change things themselves without config files at all.

Link to comment
Share on other sites

hm, that's interesting. I can see people wanting both...

The import/export will come later in the mod's life, because that's going to be a more-complex UI element. I'm going to focus first on the UI I already have, which is adding/removing individual overrides while optionally browsing existing recipes.

Link to comment
Share on other sites

  • 3 weeks later...

well I ended up making the thing I wanted after all.

This is completely unrelated to anything else but I made json recipes:

598RK.png

598ST.png

598QZ.png

It can take id, oredictName, or unlocalizedName along with meta and nbt for comparison. All that + quantity for output! It doesn't do anything with specialized crafting handlers (e.g. IC2's electric item crafting which transfers energy into the completed product) (yet) but it should allow people to define whatever recipes they durn well feel like for almost everything, just by editing a config file. Next step is getting it to auto-sync this between server and client...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...