pandorabox-io / in-game

Random code and stuff for in-game things
MIT License
3 stars 0 forks source link

Wrench - Version 2 #367

Open Klaranth opened 7 months ago

Klaranth commented 7 months ago

Huhhila make barter table support viewing wrenched container contents, similar to how backpacks work in the inventory

OgelGames commented 7 months ago

Too specialized IMO, and not easy to implement either.

Klaranth commented 7 months ago

Huhhila Consider adding wrench support for recent nodes like mooncontroller and digibuilder

Klaranth commented 6 months ago

MCLV Cable plates are annoying. for the simple reason they have different node names for all rotations and when you dig them, they all turn back to cabletechnic:mv_cable_plate_1. But,... what if you could just pick up cable plates with the wrench and have yourself technic:mv_cable_plate_2 and alike? Then you could just pick up and put into the digibuilder all the right rotations and have them placed correctly rotated

But yeah, being able to pick up nodes that have this special _on /_off /_active and other additions to their node names would be really handy

SwissalpS commented 6 months ago

you can place cable plates in any direction with digibuilder, no need to be able to pick them up.

  1. Place/build a node that digibuilder can then build against.
  2. when telling builder to place cable plate, add the pointed_thing-helper to the command-table i.e: up = true (or down, north, south, east, west)
  3. the cable plates on_place handler will then place the correct node.

On a survival server I don't think it is good for players to have special-state nodes in their inventory. (on/active/extended)

MCLV-pandorabox commented 6 months ago

Okay, I don't understand game design. so I don't know why you have those objections. But now I have to program the luac to convert those node names to have their respective pointed_thing-helper equivalent and I'm now getting a semblance of an idea of how much trouble that is going to be. It just seems rediculously complex.

SwissalpS commented 6 months ago

Yes, you need to do some work on your luac-code if you want to build special nodes or make automated copies. But you probably have a limited subset to work on :)

Look at replacer compat folder to get an idea of how complex implementing this kind of thing in digibuilder would be.

Why I don't think survival games should have 'not_in_creative_inventory' nodes:

  1. it's a survival game, not a creative one
  2. players are supposed to create systems to make the nodes change into a non-standard state

If you play on a creative server, then digibuilder also is creative and will place more or less any node, especially if player has 'give' privs :D

MCLV-pandorabox commented 6 months ago

I do understand that, but what I don't understand is that mv_cabel_plate_2 would need to be in the category of 'not_in_creative_inventory' because it adds a level of unnecessary complexity which makes me just want to abandon it all, and I suspect I'm not the only one. Especially since the solution to this 'problem' is such a simple one. I think if you shoot down a idea that makes thinks more simple, it should be countered with a good enough reason.

Making nodes like cable plates "special" just so you would need more work on your lua code if you want to use the digibuilder doesn't really seem like good game design. It being a unintended side effect of the way that cable plates were designed in the first place is a much more likely reason. Let's "fix" that

SwissalpS commented 6 months ago

Let's "fix" that

And how do you propose changing how tubes, pipes, wires, cables and cable plates work? (gravel-spread and some glass types also come to mind, not to mention flowing stuff)

Again, I don't consider it a solution to just enable players to have e.g. 'water_flowing_sw' in their inventory.

MCLV-pandorabox commented 6 months ago

it as not so much a fix, but more a work around. if you can pick up certain nodes like mv_cable_plate_3 etc with a wrench, they can then be simply put in the inventory(they even stack) of a digibuilder so it can use it to place them in world at the location of where it was scanned without any shinanigans. Ofcourse the wrench would not pick up water_flowing, just a small subset of the nodes that are relatively harmless and appear as in the digibuilder's scan. This is a very simple workaround and complete control of which nodes can be picked up resides completely within the wrench mod, so I don't really see any of your objections as real objections. But If I have missed something, please enlighten me.

SwissalpS commented 6 months ago

without any shinanigans.

picking up nodes a survival player normally can't pick up is a shinanigan IMO :D

Wrench is a tool to pick up inventories. Cable plates, tubes, pipes etc don't fall into that category at all.

Other than that, I feel like I'd repeat myself.

If anything, I support the idea of improving [digibuilder] in a similar way as [replacer] 'knows' which item to use for whichever node. It's just rather intensive to maintain.

Edit: or extend [craft_db] to know these conections is also an interesting idea.

S-S-X commented 6 months ago

This is a very simple workaround and complete control of which nodes can be picked up resides completely within the wrench mod, so I don't really see any of your objections as real objections. But If I have missed something, please enlighten me.

This is very complicated way to allow crafting nodes that aren't meant to be craftable. If those should be craftable then better to add recipe than complicated method to place and pick up. If those should just be available on pandorabox then add admin vendor, or recipe through pandorabox_custom.

S-S-X commented 6 months ago

If anything, I support the idea of improving [digibuilder] in a similar way as [replacer] 'knows' which item to use for whichever node. It's just rather intensive to maintain.

Alternatively you could just place items like a player does, for most stuff all it takes is pointed_thing and running through core+custom callbacks. This would of course have some performance impact but wouldn't need that much maintenance, for performance it could be selectable for each placed node.

SwissalpS commented 6 months ago

If anything, I support the idea of improving [digibuilder] in a similar way as [replacer] 'knows' which item to use for whichever node. It's just rather intensive to maintain.

Alternatively you could just place items like a player does, for most stuff all it takes is pointed_thing and running through core+custom callbacks. This would of course have some performance impact but wouldn't need that much maintenance, for performance it could be selectable for each placed node.

That is basically what digibuilder currently does. You can pass pointed_thing hints in the command table. Then the regular callbacks are called.

SwissalpS commented 6 months ago

For auto-farming I've written a function to detect when plants are ripe and have provided it at Lua Library. I don't see why it isn't possible to write a similar function to convert between scanned node and inventory item. Also you could write a library for mooncontroller :D

MCLV-pandorabox commented 6 months ago

it's not that it isn't possible to do, it just turns a really simple idea of scan and build using digibuilder into a pain in the ass because of exceptions like this.

Besides I tried using the top=true directive. on position 1,0,0.. guess where it ended up? yep the cable plate node was placed on 1,1,0

Beside it being extra work which is probably not even intended, or propper game design, we also have to be extremely careful whow much work we are going to be assigning to a luac because they burn more easily then my morning toast

SwissalpS commented 6 months ago

top=true directive. on position 1,0,0

did you have a support node at 1,-1,0 ?

To your other complaints. This is a survival server, things are supposed to be challenging. If you want easy scan and copy, play on a creative game with give privs :D

MCLV-pandorabox commented 6 months ago

hm. so you are saying this is all part of game design? Well, since I don't understand game design, I'll just drop it then. But I still haven't really heard any good arguments for it, so I will remain obilivious. I kindly thank you for your time.

Klaranth commented 5 months ago

Huhhila

367 add mooncontroller:mooncontroller_burnt support for those players who want to make museum/library of their failed code (obviously other complicated methods like jumpdrive-splicing builds already exist for that)

Klaranth commented 2 weeks ago

frogTheSecond make wrench be able to pickup an active nuclear reactor core FeXoR I was about to say "Sounds reasonable" ... but at second thought - that's a dream come true for players that like to terrorize others x) frog wait oh right thats basically corium what about priv locking it (probably too complex to bother) (also that was a joke but would be really funny if we could actually wrench live nuclear reactors) Marsufoman nuclear war? FeXoR Marsufoman, We could propose shutting down the server - the result is pretty much the same ;) Marsufoman pandorabox great server, would be a shame to see it being shut down FeXoR Yea - so probably no nuclear war then ;) frog ok but it would be funny to have post apocalyptic pandorabox for a bit Marsufoman yeah FeXoR> "Fun for a bit" is IMO the same as "not as much fun as the current state" :p Marsufoman yeah natural catastrophes would be nice lil bit of changeup for once MCLV yeah, make a backup. allow total anarchy for a bit. then reset. We could call it anarchy week :D Marsufoman give everybody rockets n stuff plot twist; theres no backup (joke) MCLV evil! Marsufoman i already built my mansion so it can withstand bombs, its so large lol anyway tsunamis would be a cool addon FeXoR If you like that idea so much and think others like that, too, create a server like that - and see how many players will join ;) Marsufoman fine with staying on pandorabox tbh FeXoR There is e.g. a server called something like "real liquds" (I don't quite remember). It has actual rain that changes water level - so floods occur. Sand and dirt get wet and "slide" down cliffs. I like the idea! ... but the server is mostly empty ;) (There at least building a house finally makes sense x)

SwissalpS commented 2 weeks ago

have "fun for a bit" on test-server, bring that down :D