Enigmatica 6 - E6 - 1.16.5

Enigmatica 6 - E6 - 1.16.5

1M Downloads

Add Refined Crafter Proxy

StevenDoesStuffs opened this issue ยท 11 comments

commented

URL

https://www.curseforge.com/minecraft/mc-mods/refined-crafter-proxy

Why would you like the mod added?

Disclaimer: I am the author of this mod.

This mod makes it easier to distribute the same recipes over multiple machines by adding a "crafter proxy" which mirrors another crafter's patterns. RS will then automatically load balance the recipes across all the machines without forcing the player to create multiple of the same pattern for multiple crafters. It's a very small mod purely for QOL, and its only dependency is RS.

I've been playing with this in my E6E world for a week or so now and have fixed all the bugs I could find in that time, and everything seems to be working now.

commented

Ooh, nice mod idea! I vote yes ๐Ÿ˜„

commented

Ahhh shoot I forgot that kotlinforforge is also a dependency, but y'all already have that.

commented

No issue here. Just curious what the power draw is and if it is configurable.

commented

Appears to be 4x the regular crafter powerdraw. Which in our case is a lot.

commented

Ah yeah that was more of a placeholder value. I can make it configurable.

commented

My only other question would be does it work with the upgraded crafters we have in e6e? Cuz upgrading for energy efficiency in e6e is a big deal lol

commented

Yeah I was really struggling to figure out how do deal with the extrastorage crafters.

On one hand, I'm thinking I could just make it so that the proxy takes the properties (speed + energy draw) of whatever crafter you craft it with (meaning you could craft it with any of the upgraded crafters as well), but that's kinda difficult.

I'd have to either pull in extrastorage as a dependency or try to generically wrap a crafter node and turn it into a proxy (which might not even be possible, since I'm not sure forge would let me go from an item to a RS node that easily).

The other idea is to store properties as part of the NBT tag, meaning they could be customized as a part of the crafting recipe, and then modpack creators like y'all could create the recipes for the upgraded crafters on your side.

I'm thinking of going for the second one, since it's much easier on my end. Thoughts?

commented

Is 4x energy cost worth it in our case?

commented

4x is a lot, especially if it only works with rs crafters and not the advanced ones.

If it's configurable that's one thing. But not supporting the extra crafters we have does make these less appealing.

commented

The other idea is to store properties as part of the NBT tag, meaning they could be customized as a part of the crafting recipe, > and then modpack creators like y'all could create the recipes for the upgraded crafters on your side.

I'm thinking of going for the second one, since it's much easier on my end. Thoughts?

I think that would be smoothest - I recommend that you make sure to document it well so other modpack devs can find this feature easily.

That being said, I'm not sure it would be worth the work for us in E6, considering it's just in maintenance mode at the moment.

commented

I'm currently testing the new config implementation. What do y'all think the energy usage should be for the crafter proxies?

Ideas:

  1. same energy usage as the corresponding crafter
  2. (1) with constant energy penalty
  3. (1) with per pattern energy penalty
  4. mix of (2) and (3)

The way config works right now is that we have a config file that looks something like

#Note: for technical reasons, if anything in the tiers section is invalid, it will reset the entire section.
#Luckily, forge backs up invalid configs in .toml.bak files, so look there if everything got reset.
[tiers]

	#Special tier for crafters without a tier tag.
	#For values other than `default`, this is the value that appears within the tier tag.
	[tiers.default]
		#The maximum number of successful crafting updates per crafter update,
		#where the (zero-indexed) index in the list is the number of speed upgrades.
		#Must be a list of integers of length 5 with elements > 0.
		maximumSuccessfulCraftingUpdates = [1, 2, 3, 4, 5]
		#The update interval of the crafter,
		#where the (zero-indexed) index in the list is the number of speed upgrades.
		#Must be a list of integers of length 5 with elements > 0.
		updateIntervals = [10, 8, 6, 4, 2]
		#The display name of the tier.
		#If nonempty, the name of the block will be formatted as `{name} Crafter Proxy`.
		displayName = ""
		#The energy used for the crafter.
		#Must be an integer >= 0.
		crafterEnergyUsage = 4
		#The energy used for every pattern in the crafter.
		#Must be an integer >= 0.
		patternsEnergyUsage = 1
		#The multiplier for the energy usage of the upgrades in the crafter.
		#This does *not* multiply the total energy usage, only the portion used by upgrades.
		#See refinedstorage-server.toml#upgrades for the energy usage of specific upgrades.
		#Must be a float >= 0.
		upgradesEnergyMultiplier = 1.0

	[tiers.gold]
		maximumSuccessfulCraftingUpdates = [1, 2, 3, 4, 5]
		updateIntervals = [10, 8, 6, 4, 2]
		displayName = "Gold"
		crafterEnergyUsage = 100
		patternsEnergyUsage = 1
		upgradesEnergyMultiplier = 1.5

and then you set a {Tier:"gold"} on the block item and it'll use the right settings.

I figured this was better than storing all the options in NBT since then it'd be impossible to update the existing blocks.

Also, any ideas for recipes? Currently I'm thinking (for expert mode) to have it take

  • the crafter in the center,
  • quartz enriched iron on the corners,
  • a network card, neural processor, and two other items I don't know yet on the sides.