Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new appliance, the glassblower's crucible #76936

Merged
merged 21 commits into from
Oct 24, 2024

Conversation

AudBobb
Copy link
Contributor

@AudBobb AudBobb commented Oct 10, 2024

Summary

Features "Add a new appliance, the glassblower's crucible"

Purpose of change

I intend to begin going through the glass crafting recipes and implement batch crafting savings to them, because when crafting more than one of a glass item, you should only have to spend the time melting the glass once, and this isn't represented in the game. This being said, the current implementation of of crafting glass items relies on the 2 liter crucible and a furnace, which is fine for small items, but insufficient for batch crafting say, 10-20 3L glass jars, hence the addition of a dedicated appliance.

Describe the solution

While working on this addition, I kind of spewed my thought process into a text file, which I will copy paste into the additional context section, so most of my logic for doing things the way I did can be found there.

My solution is to implement a new appliance, the glassblower's crucible. This is constructed using two clay vessels, one nested inside the other, with a layer of fire bricks and heating elements sandwiched between them. It uses a thermostat to monitor the temperature of the crucible. I used an abstract value of 10L as the capacity of the crucible, more information on why this value was chosen can be found in my notes in additional context.

There are currently no recipes using the pseudo tool this appliance provides, as this PR is just to implement the appliance itself, and I will begin adjusting glassblowing recipes to use this tool, and give them batch crafting savings related to melting all the glass up front. More information on how that will work is in my notes in additional context.

Describe alternatives you've considered

Two alternatives I considered were to not implement this new appliance, and just proceed with giving glassblowing recipes batch crafting savings anyways, but logically, since the batch crafting savings come from the idea of melting all the glass at once, and as an example, 1 3L glass jar contains 0.95kg of glass, and the density of soda-lime glass is 2.5g/ml, that means there are 380ml of glass making up that jar. So batch crafting 20 of these jars would mean you are using 7.6L of glass, which is far more than the 2L crucible currently used in this recipe can handle. So I consider this alternative to be inferior

The second alternative I considered would be more true to life. It would still involve adding in the new appliance, but instead of just being a pseudo tool, when turned off it would have an interface like the smoking rack where you can insert items with the material type "glass". When turned on, it would have a 2-8 hour processing time based on the volume of glass inserted, after which it converts the volume of glass you inserted into a pseudo item "molten glass". You would not be able to extract this item. The crucible remains on after the processing time, continuing to draw power until turned off. If turned off, the molten glass is converted to an equivalent volume of glass shards. In this alternative, crafting recipes would require the active crucible in range, as well as sufficient quantity of the molten glass pseudo item to consume. This alternative is in my opinion the superior alternative, but would require actual coding, and I don't know C.

Testing

Loaded up a new world and set skills to level 10. Checked the crafting menu for the recipe, and as expected, did not find it. Spawned and read the glassblowers handbook. Rechecked the crafting menu, and the recipe was there. Spawned the crucible and a battery, and placed both. Adjusted the crafting recipe for 3L glass jar in my files to use the glassblower's crucible with 1 watts instead of the clay crucible (this is not a change in this PR, I made this change on my machine for the express purpose of testing that the pseudo tool was working), and was able to craft as expected with the crucible placed nearby.

Additional context

don't think advanced welding should really have any impact as you would only really be welding a very basic cylinder to hold the entire apparatus on the pipe stand?

included processor board, small lcd screen, and bi-metal thermostat as most modern kilns seem to be able to be able to have a programmed heating schedule. Presumably the glassblowers handbook would contain details on these schedules. This crafting requirement could be removed, although I think it's cool and gives another (limited) use for these rarely used components. Alternative could also be circuit board and bi-metal thermostat, to simulate an analog circuit, with something like an adjustment screw on the bimetal strip to adjust the set temperature. Feedback welcome here.

Weight of all components: ~49.47kg
Volume of item: at least 25 for the clay canning pot, which is the main body of the crucible, plus a bit for the pipe stand. One set of dimensions for a cylinder with a volume of 25L would be ~50cm tall by ~25 cm across, or ~1ft across by ~1.6ft tall. Having the top of the crucible around waist high would be ideal, (there is like no information on what the average height above ground level "waist height" is, so I literally just measured it based on myself, a 5'11" male, and got 3'3", or 99cm, so I'm going with 1 meter) so we can figure the overall form factor of the crucible would be a rectangular frame of 25cm x 25cm x 100cm, or a total of 62.5L. All of the electronics can be assumed to be contained within the space of the frame under the canning pot, with controls in one of the corners of the frame between the cylinder of the crucible and the rectangular frame, so everything fits within this rectangular profile.

I have NO clue what to value this at post apoc. Presumably, the ability to create glass jars would be pretty valuable to budding communities, as this allows for long term preservation of food. Feedback in this regard would be greatly appreciated.

Thought about adding looks_like electric kiln, but unsure. It doesn't really look like the electric kiln so this would only serve as a place holder texture, so opting to leave it alone. Using a brown "o" as the symbol, as it is effectively a clay cylinder inside another clay cylinder, with a round clay lid. So yeah, I guess

Thought about saying "Designed for melting up to 10 liters of glass" in the description instead of "Designed for melting large quantities of glass", but I'm not sure how that would look/interact with users selecting their own system of units or translation teams, so opted for the more generic option.

Volume of glass held by the crucible (this is not represented in game at all, but for item design purposes I want to set a value)- 10L? Talking to some glasssblowers on r/glassblowing, they seem to measure crucible size in pounds of glass it holds, rather than volume, so using the density of molten glass (2.5mg/ml) this would hold roughly 55lbs of molten glass if completely filled, so realistically around 50lbs max. According to them, an 80lb crucible filled with glass and turned on in the morning would be ready to use by afternoon (they didn't give specific hours, so I take that to mean 8am-12pm, or 4 hours prep), so I'm figuring we really want to keep it smaller than that until someone more skilled than me in coding decides to sit down and create a smoking rack style kiln that you plug in, load up with glass shards/glass materials, turn on, and it converts them to equivalent volume of 'molten_glass" stored as a variable over the course of 'x' number of hours, and then that can then be used as the material component for larger glass crafting projects. The kiln would continue to draw that power until shut off after done with the project. But I think that is way more ambitious than what I am capable of. For future reference, in case anyone decides to take on such a project, the glassblowers from reddit say a 600lb furnace studio crucible from one posters job took around 2 days to fill from empty, 200lb furnace filled over the course of 1 day, and left overnight, ready to use the next morning, then 80lb furnace loaded in the morning, ready by afternoon. And quote "The main thing with melting glass and the time till it is ready is about bubbles in the glass. If you don’t care about bubbles the time till it’s “ready” is shorter but the quality of the glass would be lower." This all said, I think keeping our crucible at 50lbs or lower, we can base recipes craft times on 2 hours for heating up the glass plus whatever the craft time for the item is, and use batch crafting system to remove the 2 hour melting time from subsequent crafts. We can assume if someone is doing some absurd batch craft where the total amount of glass used is over 50lbs, they are adding additional glass into the crucible as they craft, so there is never more than 50lbs in the crucible at one time. Overall, the effect of this change is crafting single large glass items will likely increase, but crafting large batches, eg 3L glass jars for canning, should take less time. Small glass items recipes, eg test tubes/.5L glass jars can remain unchanged, continuing to use the forge/kiln + crucible method, potentially with the option for a secondary recipe using the glassblower's crucible that enables more time efficiency with batch crafting

Crafting recipe based on clay pot oven and electric kiln. this being said I kind of feel like the clay pot oven should need more than 2 fire bricks, as they are .5L volume, and meant to be taking up the empty space between the Canning pot, 25L, and clay pot, 2L. This means there are 22L of empty space in this arrangement, but that's beyond this PR, and honestly the clay pots are all over the place in terms of volume of container vs clay required, so maybe I'll look at that another time.

"breaks_into" - another field I'm kind of guestimating on. The number of ceramic shards from breaking seems high, but looking at volumes, the total volume of clay used in crafting was 4.25L (25x.25), and a ceramic shard has a volume of .05L, so realistically it has 85 shards worth of clay in it, so figured max return of like 50% of those? IDK, I'm spitballing here lol. The rocks come from the fire bricks.

Reference item
https://kilnfrog.com/products/jen-ken-kiln-crucible-1813
https://kilnfrog.com/products/double-wall-crucible

The first link has a capacity of around 53L, so nearly identical to the item describe by this PR. For reference when it comes time to adjust recipes to use this item, the power draw is listed as 7200 watts.

PS: I apologize the commit changelog is kind of a mess, this is my first time making any real changes aside from changing one or two lines in a json file, and I was trying to do the edits in the browser code editor as I went, which I realized about 90% of the way through was NOT the right approach. For future changes I intend to make my code changes client side and learn how to use git to push those back to my github branch.

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Appliance/Power Grid Anything to do with appliances and power grid astyled astyled PR, label is assigned by github actions labels Oct 10, 2024
AudBobb and others added 2 commits October 9, 2024 22:03
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions github-actions bot added the json-styled JSON lint passed, label assigned by github actions label Oct 10, 2024
@github-actions github-actions bot added the <Enhancement / Feature> New features, or enhancements on existing label Oct 10, 2024
Previous commit is fixing same issue in different file
@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 10, 2024

Should this be called a glassblower's furnace? Uncertain. The product listing I based it on calls it a crucible, but the glassblowing community seems to call it a furnace

@PatrikLundell
Copy link
Contributor

I'd suggest adding a recipe using this device as a proof of concept, with the rest of the recipes in follow up PR(s).

Also, given the current implementation, I'd make it clear that it will be usable only for batch crafting. If it's changed later to actually be a source of a large amount of molten glass usable for a series of crafting tasks, the description ought to change.

You may also want to look at the base camp workshop expansions to see if they ought to get an additional upgrade with this new device. I think you'd still want the current one for one off crafting, and this appliance also has some additional requirements that makes it more suitable as a somewhat later upgrade.
There are some specific base camps that have workshop type upgrades, and this might fit some of them too.
Note that this potential change can be placed in a separate PR, although I wouldn't consider it to be out of scope for this PR either.

@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 10, 2024

Also, given the current implementation, I'd make it clear that it will be usable only for batch crafting. If it's changed later to actually be a source of a large amount of molten glass usable for a series of crafting tasks, the description ought to change.

So my original idea was to make larger glass crafts like the 3L jar, or glass sheets require this even for ones offs, do you think it would be better to leave the existing recipes for all glass items as is, and add new recipes for everything with batch crafting enabled, and change this items description to something along the lines of "Designed for melting large quantities of glass, speeding up the process of crafting multiple items at once"

I'll have to look into the basecamp stuff, I haven't even gotten around to using those in game, so might need to do it separately after I learn how they work.

When I get home this afternoon I'll add in a recipe for 3L glass jar as a concept. I've been talking to some actual glassblowers about them the past couple days so think it'd be a good starting point.

Thank you for the feedback!

@PatrikLundell
Copy link
Contributor

I wouldn't expect a 3L jar to consist of that much material, but glass sheets are definitely on the large side. I'd still suggest the description to make it clear its main usage would be for large item and batch crafting. Mentioning multiple items at once still leads you to believe you could create several different items in a sequence.

@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 10, 2024

So a little fourth wall breaking to straight up mention batch crafting.

"Designed for melting large quantities of glass for batch crafting and production of large items"

For whoever actually reviews this, this is my proposed plan for moving forward if this PR gets accepted

I intend to go through all the craftable glass items and work out how much glass they actually use in game, compare that to an irl counterpart. I'll adjust the current recipes to match, cause I know right now the existing 3L glass jar calls for less weight of glass shards as components than the resulting item actually has. I'll leave any recipes that take less than 2L of glass alone, as they fit within the clay crucible the recipes call for, and remove the existing recipes that use more than 2L of glass, adding them back in the new series of recipes that will use the glassblower's crucible.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Oct 10, 2024
@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 10, 2024

Added a proof of concept recipe for the 3L glass jar that uses the glassblower's crucible

Most of the notes below are going to be in a separate PR where I finalize this new recipe, as they are out of the scope of this PR, but these are my thoughts as I created this proof of concept recipe.

Proof of concept recipe for Glassblower's Crucible PR

Product References
The current jar referenced in the json files is actually not a canning jar, despite the game treating it as a canning jar, so I propose we switch the reference item to this one. Both links are to the same product, on different sites, in case one link dies.
Bormioli Rocco Quattro Stagioni Maxi Collection - Jar - 3 Liter (101 oz.)
https://www.themercantileco.com/bormioli-rocco-quattro-stagioni-maxi-collection-jar-3-liter-101-25-oz/
https://www.amazon.com/Bormioli-Rocco-Quattro-Stagioni-Mouth/dp/B085V3XJH2/ref=sr_1_20?dib=eyJ2IjoiMSJ9.FZvr7Y5vd3sQjXYkY6AQcHXBvQQhMNUnM5iHB56Sq4H5oCwu154KXfeA3mTAm7ZHK-gVmOAwsz88egclZd7QwpPm8wt4y_mawjNbhnoHpj0oLCcob4_kLja74fntbHM43ATIRuVigzHhJdWvnocXyyYSF5eivhcri6Eue-J04caDxKglSlQV0sLqRoutIjBMM_NoEagk4V9IVTytDfMkO2osG1IGN49HKrZXkZFaf6H02EAqgwHaaM7hrKwdIHJty89_o4nXGGm3sfJ58KhYJ9qYYoZvYq2_RkzVNij6wXE.8zawn2geYoatSgMDXVPVnelUil0aJLwfNaYV8Sjfo5c&dib_tag=se&keywords=3%2Bliter%2Bjar&qid=1728594659&sr=8-20&th=1

Product listed as 900g, close enough to the 950g of the current in game item. I will use 900 grams as weight of the glass, and 50g as the weight for the lid when figuring resources.

Tools
1 tool with chiseling of 2 or more.
pair of flatjaw tongs OR pair of flatjaw bronze tongs
pipe
crucible OR clay crucible
electric forge (150 charges) OR basecamp forge (150 charges) OR charcoal forge (150 charges) OR gas forge (150 charges)
glassblower's crucible (4800 charges)
small sandcasting mold OR sandcasting mold

Components
13 glass shards OR 20 glass flasks OR 27 test tubes OR marble (318) - 910g
1 scrap metal - 50g
chunk of rubber

Time
2h 30 m
Batch savings
80% > 1

This is a proof of concept recipe that will be adjusted soon, the sandcasting mold will be replaced with a new 'jar threads mold' that is made of steel. This is basically just a ring of steel that you put around the neck of the jar as you are making it, then press the molten glass into. After the glass cools down a bit, you just unscrew the mold from the jar and are left with a perfectly threaded jar. Similarly, the chunk of rubber is a placeholder for a new item I plan to add, 'jar seal', which will just be a recipe turning a chunk of rubber into say, 4 seals. I'll have to work out the math on that, both of these changes are beyond this PR scope, but since this recipe is being put in as a proof of concept for this suite of changes I wanted to give a good idea of what I'm planning.

The time works out to 2hours to heat up the crucible and melt the glass, 30 minutes to make the jar. After talking to some glassblowers on reddit, 30 minutes is what a couple people said for someone who was experienced in making large glass vessels could pull off. The batch crafting should be set up so that every item after the first only takes 30 minutes

Picking the number of charges to consume was kind of tricky and I'm open to suggestions, but the product listing I used for the crucible lists the watts used as 7200watt hours, but we don't have a way to use charges based on length of a batch craft, so if I set the charges used as 18000 (2.5hours at 7200watts per hour), then a batch craft of 10 items, which would take 7 hours would use 180,000 charges, when the real life watts used should only be 50,400. So the solution I went with was to assume the standard batch craft would be a full work day of crafting glass jars, or 12 jars, and base the charge use off that number. So running the furnace for 8 hours at 7200 watts per hour would be 57,600 watts consumed, divided by 12 crafts gives us a watts per craft of 4,800. I think this is a happy medium given the constraints of the system.

@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 10, 2024

I believe this makes this ready for review

@github-actions github-actions bot added the Items: Containers Things that hold other things label Oct 10, 2024
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions and removed json-styled JSON lint passed, label assigned by github actions labels Oct 10, 2024
@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 18, 2024

Is this waiting on anything? Unsure if I'm good to continue on with making the recipes.

@PatrikLundell
Copy link
Contributor

The unpaid people who review/approve/merge PRs take varying amounts of time to get to PRs, so it can take some time.

@AudBobb
Copy link
Contributor Author

AudBobb commented Oct 18, 2024

Understood, just wanted to make sure I wasn't missing something that I shou;d've done

@Maleclypse Maleclypse merged commit e19f8b3 into CleverRaven:master Oct 24, 2024
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Appliance/Power Grid Anything to do with appliances and power grid astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions Crafting / Construction / Recipes Includes: Uncrafting / Disassembling <Enhancement / Feature> New features, or enhancements on existing Items: Containers Things that hold other things [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants