A note for the Devs

So here it is, I am not a sycophant in any way, in fact I got accused of being to hard on the devs but I wanted to say something but first I wanted to provide some context.

I am a senior in Mechanical engineering at the age of 30 (shhhhh), and have some experiance in C, but mainly I spend a lot of time writing .m files and scripts in matlab. I have never seen .json .luac or even tried my hand at java in my life.

So what I wanted to say is how awesome you guys are at making coding in this game accessible. I decided I wanted the mean bed to be a base component for a comfy bed instead of the cloth, 30 min of random trial and error and I had this. I am going to make a tutorial soon but until then just wanted to say a big ā€œgreat job guys!ā€ Its one thing to code, its another to set things up so a lay coder can interpret what you have done and then edit it.

9 Likes

Wow, thatā€™s a great idea!

Glad youā€™re enjoying! It still takes a good deal of effort/initiative to figure it out with no documentation, so props to you. Looking forward to the tutorial!

2 Likes

Except when you realise that in order to upgrade beds, youā€™ll need to disassemble-upgrade-assemble beds again or have one spare bed, which will put you at +1 bed at the end of the whole process. Surely not that much of a big deal, but just something to watch out when you have some sort of upgrade-an-item-in-use thing.

@RepeatPan this actually isnt a problem, the carpenter automatically deconstructs the bed, tested it several times with no problems, so all you need to do is manually place the upgraded bed. The old bed is consumed in the process.

2 Likes

agreedā€¦ I like the idea of using existing crafted items as a base to upgrade to the next tierā€¦ :+1:

1 Like

I would say it is a problemā€¦ If a carpenter is running around and takes already placed equipment to craft something new, you never know which thing he took, or where - as thereā€™s little control over that. It also doesnā€™t really allow you to plan or prioritise who gets an upgraded bed first.

1 Like

then again, we canā€™t prioritize who gets existing crafted items eitherā€¦ you drop a bed, and its first-come-first-serveā€¦

2 Likes

True. However, assigning a bed would be an okay mechanic (or rather assigning a house?) but if you have to select the ingredients for what to craft, then it sounds a bit too micromanagey.

1 Like

If I were doing it, I would probably have the recipe call for a bed proxy, instead of a bed. That way, you never upgrade a placed bed, just a tiny little placeholder bed.

2 Likes

thatā€™s why they pay her the big :moneybag: ā€¦

:smile: :+1:

3 Likes

@sdee that is what I tried at first, but ingredients has to be a material tag, it wont call anything else, and those are inherited from the true object for proxy at this stage. Tried adding a material tag to the proxy, it doesnā€™t do anything it still just inherits the main object material.

1 Like

A way to solve this problem is to have a movable ghost bed, so if a bed is taken from there, a bed object would just be put to replace it.

  1. Weaver makes item: Linen Duvet.
  2. Select Mean Bed.
  3. Click ā€œAdd Linen Duvetā€, if bed is not in use (or not?). Nearest (?) Linen Duvet object is tagged as ā€œin useā€ or whatever, so you canā€™t try to do this with too few duvets. ā€œAdd Linen Duvetā€ button greyed out so you canā€™t click it again.
  4. Worker goes to fetch a Linen Duvet, takes it to bed, hammers (because placing anything requires hammering :smiley: ) it onto the bed.
  5. Bed becomes Comfy Bed, retains ownership details etc. No surplus materials used, no placing upgraded beds, etc.

Thoughts?

2 Likes

Ah, I see what you mean. The material tags of the proxy are identical to the material tags of the full sized item, since theyā€™re copied. However, I donā€™t think theyā€™re copied UNTIL the proxy is first placed (this is a technicality, so theoretically it could change. But!) So if you added a material component to the proxy item, and made the material tags there something unique, and then required that unique set of tags from the recipe, then the recipe will only use proxy items that have never been placed. Which is what you want, even if it came about via a loophole, huzzah!

In other words, add something like:

"stonehearth:material" : {
     "tags" : "wood furniture crafted chair little"
   },

To the wooden_chair_proxy.json

Then make the recipe for the arch backed chair require one ā€œwood furniture crafted chair littleā€

"ingredients": [
  {
     "material" : "wood furniture crafted chair little",
     "count" : 1
  }
],

And see what happens.

A more robust solution would be to create a component that lives only on proxy items that adds the special ā€œlittleā€ tag for you on initialization. But thatā€™s the followup exercise. :wink:

Edit: you can also change the material to whatever you need. The existing tags do denote some behavior; resource means itā€™s counted as a resource, wood resource means itā€™s stocked in stockpiles that take wooden resources, etc, but as long as the two strings match, youā€™re theoretically good.

2 Likes

Thanks @sdee yea tried that to, it still just inherits the tag, it goes to the stockpile then just sits there. On another note my carpenter can now make rabbits. In case anyone is wondering I am the sort who abstractly figures out how to do things ahead of a project. All this is laying the ground work for my mod, just dont know what the mod will be yet but had some good ideas today.

2 Likes

Huh, thatā€™s weird; I tried it out and it works in my test environment. But it could be a timing thing! If you post your recipe file, your simple bed file, and your comfy bed file, I can take a look!

1 Like

Iā€™m thoroughly enjoying seeing this come togetherā€¦ @Wombat85, youā€™ve sparked my interest in resuming my modding effortsā€¦ thanks! :smile: :+1:

1 Like

@SteveAdamo come help the EVE project, a crafted human.

another idea: Letā€™s make an option to change items back to their ā€˜miniature transportable versionsā€™.
It could be very useable if we will simply ā€˜upgradingā€™ items rather than crafting new ones.

1 Like

[quote=ā€œphoriist, post:19, topic:6547, full:trueā€]another idea: Letā€™s make an option to change items back to their ā€˜miniature transportable versionsā€™.
It could be very useable if we will simply ā€˜upgradingā€™ items rather than crafting new ones.[/quote]
Yeah, that could work nicely with what I was suggesting above. So you select a Mean Bed, and it has the following options:

  1. Designate Owner (for when itā€™s not in an owned structure / room)
  2. Store / Cancel Store Order (worker disassembles bed into portable version, places in nearest furniture stockpile)
  3. Add Linen Duvet (for making it into a Comfy Bed etc, as I detailed above)
  4. Add Silk Duvet (for making it into a Luxury Bed, same principle as the Comfy Bed)

Thoughts?

2 Likes