Cold Sweat

Cold Sweat

3M Downloads

[IDEA/QUESTION] Carried Item Temperature changes between Dimensions

Closed this issue · 10 comments

commented

Hello, it's me again!
I have a question: Is it possible to change or disable the Carried Item Temperature in one dimension, while keeping it different or disabled in another?

For example, I've added a temperature to an item from The Aether mod, but I want it to work ONLY in the Aether dimension. Can I disable or adjust the temperature of this item when it's in the Overworld?

If not, it could be a nice option to have for more customization purposes!
Thanks, looking forward to your response! :D

commented

This is actually already possible thanks to the in-depth JSON config system. You can add carried item temperatures with this requirement as outlined in this section of the docs.

commented

Hm okay, so I tried creating the datapack based on the link you provided, but it doesn't seem to work. Since it's my first time working with datapacks, I might have done something wrong, but I can't figure out what
I think I may have set the folders path/localization incorrectly, or I might be missing something in the code itself, idk. :v
I also removed the item line from the item_settings.toml

Here's the file path:
[instances/modpack/data/aether_lantern/cold_sweat/item/carried_temp/aether_lantern.json]

Aaand a screenshot from the file.
lantern

commented

There are 2 ways to add JSON data to Cold Sweat:

  • A datapack (instances/modpack/saves/<worldname>/datapacks/aether_lantern/cold_sweat/item/carried_temp/aether_lantern.json)
  • In the configs folder (instances/modpack/config/coldsweat/data/item/carried_temp/aether_lantern.json)

Adding JSON configs to Cold Sweat is outlined in the documentation.

If you make a datapack, make sure you have the other required files, like pack.mcmeta (tutorial).

commented

Yeah, I’ve tried all the methods before, including the world datapack. I prefer the second option though (the config folder way) cuz it’s easier to export the modpack with everything.

Unfortunately, nothing has worked so far. I just tried placing the JSON file again with the path exactly in the config folder, as you said, but it still doesn’t seem to work. If the code in the file is written correctly, I’m unsure what might be wrong. :/
(For clarity, I'm trying to make the lantern emit heat when in the hand (or offhand) only in Aether dimension.)

I also tried maybe to do it on clear new instance, but no bueno.

commented

Ok, I forgot to mention some things about the formatting of your file:

  • "slots" is a list, meaning it uses square brackets ([ ]) rather than curly ones ({ }). This will prevent the JSON from parsing.
  • Setting max_effect (1) to be lower than the temperature of one item (2.3) causes it to not work, as it will immediately exceed its own limit.
  • The guide on the documentation is actually for the next version of Cold Sweat, and the name of the "entity" field is actually "entity_requirement" in 2.3.4. It will be "entity" in 2.3.5.

With that in mind, this code works for me:

{
	"required_mods": [
		"aether",
		"aether_redux"
	],
	"data": {
		"items": [
			"aether_redux:sentrite_lantern"
		]
	},
	"slots": [
		"mainhand",
		"offhand"
	],
	"temperature": 2.3,
	"trait": "world",
	"max_effect": 2.3,
	"entity_requirement": {
		"location": {
			"dimension": "aether:the_aether"
		}
	}
}
commented

Okay, SO.. the code works fine until the entity_requirement part.
It finally does produce heat when holding the item, BUT it's not limited to the Aether dimension. It applies everywhere. The same thing if I would make it in item_settings.toml

I think the issue might be that the dimension check in the entity_requirement isn't being recognized properly. I also tried setting it to different dimensions like the Overworld or Nether, but the lantern still gives off heat in every dimension instead of being restricted to the one specified in the code.

And sorry for bothering with that too much, lmao. I'm just trying to make it to work and get to the bottom of this.

Edit: (I just noticed the update and the changelog, I will mess with it a bit and see if it will work with new version installed!)
Edit 2: NO WAY! IT WORKS. Much appreciated for the fix!! :D

commented

Nice! Glad it works :)

commented

LAST QUESTION!
Is there an easy way to fully just disable the cave insulation in only one dimension?

Or do I have to play with the temp_region?

commented

You would have to mess with that, yes. It's a whitelist, not a blacklist, so you'd have to put in every dimension you want and leave out the ones you don't.
This is the default temp region file:
https://github.com/Momo-Softworks/Cold-Sweat/blob/1.20.1-FG/src/main/resources/data/cold_sweat/cold_sweat/world/temp_region/default.json

commented

Does this only work with the tags from the Dimension Type Tags?

When I put the Aether dimension ("aether:the_aether") or any specific dimension in "dimensions:", it doesn’t apply to any dimension at all.

However, when I leave "#forge:overworld_like", it works, but it applies to both the Overworld and Aether dimensions.
I want it to only apply to the Aether dimension.

I've tried all the tags, but they either apply to both the Overworld and Aether, or only to the Nether. (I don’t care about the Nether at all since it’s turned off, but I’d be happy if it at least applied to both the Nether and Aether, lol)
I think it should work when specifying a specific dimension...

The thing is, I'm trying to create a kind of "reversed Nether" in my modpack, with the lantern mentioned in this thread being an alternative to the soul lantern from your mod. However, now that the cave insulation has been fixed, it kind of broke the purpose of this lantern in the dimension, LMAO. So, I'm trying to change the overall temperature of the Aether dimension.