Jump to content

[In Development] ALCMy 1: With Calloused Hands Library

Recommended Posts


Not quite introducing:
ALCMy 1, the first Aetherial Labs Core Mod


I've mentioned on a few occasions that the work on my mods is waiting for a new tool I've been working on. This would be the tool to which I refer. It represents the first of a potential number of libraries I'll be building to bring these tools to new and experienced modders. So enough preamble:

What Is ALCMy1: With Calloused Hands?

“With Calloused Hands” is a library that introduces tools for modders to make introducing new crafting paths and tools quicker and easier without requiring any C# to achieve it. Further, it introduces new crafting methods that can deepen your immersion in the incredible world of Vintage Story.  It’s essential to be clear that this mod will add little to nothing on its own; it is the responsibility of modders to use the resources provided in this library to enhance their mods.

The (Current) Cornerstones of With Calloused Hands include:

  • ALCMyTool and IALCMyTool: ALCMyTool is the base for all tools used with “With Calloused Hands” and is merely an extension of the Item Class that provides a few things to make it easier on modders to add new toolModes and toolType without needing to touch C#.  ToolModes are fundamental to most recipe systems used in With Calloused Hands. They also contain the logic necessary to make in-world crafting possible. (See below)

  • Workstation Block Class & Block Entity: These two blocks make creating a functionally infinite number of workstations possible. Using them, you can create workstations that allow crafting in-world without using a GUI. Yes, this means no crafting grid. (The link is to a brief clip of my proof of concept)

  • In-World Crafting: In-world crafting allows interaction to in-world blocks using an ALCMyTool.  This is the process used in In Dappled Groves to allow chopping wood blocks, for instance. These recipes can check for the block or blocks directly adjacent to the target block and select any of them for the output.  For instance, you could place a stone on a soil block, use a shovel on it, and upon completing the recipe, the soil beneath could turn into a path.  The scope of its functionality provides endless potential.

  • In-Hand Crafting: By placing an ALCMyTool in the off-hand and a resource in the main hand, you can hold Ctrl+Z and the right mouse button, and it will attempt to find a matching recipe for the two components. This is intended for use in processes such as using a drop spindle to spin flax fiber into twine. 

  • Ground Storage Crafting: Ground storage crafting (still in early development) will check the contents of a ground storage “block” for ingredients. If it finds a matching recipe, it will complete it, replacing the ground storage block with the expected output. This concept is still being thought through, so its full range of potential is still being discovered.

New Recipe Types: To accommodate the above, there are new recipe types that *can* accept quite a range of information.  Some functions of the recipe types include:

  • SmartCraftingTime (In Development): When writing a recipe, you can manually set the number of seconds it takes to complete.  However, suppose you don’t set a value. In that case, SmartCraftingTime will take over, combining the number of ingredients and the resistance of any included blocks to calculate a crafting time for your recipe in seconds. 

  • SatiationConsumption: Set to 0 by default, you can cause your recipe to consume hunger upon completion. A config option will exist to ignore this option so that modders can set the value, and mod pack makers can configure it to ignore it or not, as is appropriate for their design.

  • WorkingAnimations: If you set a working animation on a recipe, the crafting player will perform this animation until they stop crafting or the recipe is complete.

  • WorkingSound: You can set a sound that plays while the player is crafting.

  • ProcessType: Workstations will support both tool-based recipe crafting and transient crafting. (Such as an oiled hide drying on a drying rack.)

  • And Much More!


So When Can We Expect It To Be Available?Much of the core functionality has been tested and proven entirely feasible. Further, the framework for workstations is technically complete. It’s not ready for testing, not even for patrons, yet.  But I’m working steadily on it, and releases should begin to be made available to my patrons in the relatively near future. This library is being developed to make the experience I want to deliver with my mods much faster, easier, and less repetitive to implement. Further, I’m writing it to put more power into the hands of JSON modders and C# modders alike.

This was a relatively quick and dirty overview of the mod in process, expect it to be edited and updated as development continues.





Link to comment
Share on other sites

  • 2 weeks later...

One of the things that's struck me since I started working on In Dappled Groves, and my skill level continues to increase, is how much of this is a voyage of discovery.  I rewrote the tools and recipes in In Dappled Groves no less than five times, learning a little more about the process and refining it further with every iteration.

ALCMY is undergoing a similar process.  As I continue to develop the mod, I continue to discover new ways of doing things that make it cleaner, easier to read, and more expandable.  The end result will only benefit from this process, but it does mean more time spent in development.

Currently, I'm having to rethink how the recipes are handled, again.  I suspect it's going to be fairly minor, but the default recipe manager wasn't designed to handle the kind of processing I'm integrating.  Let alone do it in a dynamic format where multiple recipes could be being handled by the same "device."  The oven is, perhaps, a counterargument to this.

It's coming along though.  The workstations are, by far, the most complex aspect of this entire process.  When this is completed, however, it should serve as an invaluable toolbox for modders.

Catch this and other updates on my Patreon

Link to comment
Share on other sites

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.