Jump to content

Mini Signs incompatible with modded items.


mathem99

Recommended Posts

Hello! I am working on a mod for Don't Starve that introduces (as of current plans) four new mobs in the game!

I will present a few details about the mod right now: (the problem I'm facing is mentioned below the two videos)

The mobs: Freezing Brrrd, Otter (W.I.P), Jungle Treeguard and Flightless Brrrd (W.I.P)

Below is a video of the fight with Freezing Brrrd and Jungle Treeguard if anyone is interested in knowing what's in store for the mod:

Freezing Brrrd:

Spoiler

 

Jungle Treeguard:

Spoiler

 

 

Now onto my actual issue, an issue that I've been having trouble with for a long time that even my previous mods still suffer from it (although it's not that game-breaking) Images from modded items do not appear on mini signs! I have no idea how to fix this and so far I haven't been able to find any solution in the forums. There's a video down below that shows the two new items this mod introduces (Glacial Feather dropped by Freezing Brrrd and Ice Dart that's made with glacial feathers and works like an ice staff but x10 times effective aka it freezes enemies immediately)

The Video:

Spoiler

 

I know this side of the forums is "dead" in a way, but I hope there's someone out there who can help me fix this issue once and for all. I also hope you enjoyed the videos with Jungle Treeguard and Freezing Brrrd.

Thanks for reading!

Link to comment
Share on other sites

In fact, there is a solution. You can refer to the code of the Item Skin mod. Here is some code:

local function ondraw(inst)
	if inst.components.drawable ~= nil then 
		local ondrawnfn = inst.components.drawable.ondrawnfn or nil 
		inst.components.drawable.ondrawnfn = function(inst,image, src)
			if ondrawnfn ~= nil then
				ondrawnfn(inst,image, src)
			end
			
			if image ~= nil then
			if  src  and src.components.dsskins ~= nil  and src.components.dsskins.skin  ~= nil then
				local	skin = src.components.dsskins.skin 
				if XQTIETU[skin] ~= nil  then
				local build='xqtietu'..(XQTIETU[skin].num or 1)
				if build ~= nil then
					if 	src.prefab == "lantern" then
						if src.components.fueled and not src.components.fueled:IsEmpty() then
							skin = src.components.dsskins.skin.."_lit"
						end	
					end
					inst.AnimState:OverrideSymbol("SWAP_SIGN", build, skin)
					if inst.components.drawable then
						inst.components.drawable.imagename = skin
					end
				end
				end
			elseif XQTIETU[image] ~= nil and XQTIETU[image].num ~= nil then
				local build ='xqtietu'..(XQTIETU[image].num)
				inst.AnimState:OverrideSymbol("SWAP_SIGN", build, image)
			end
			end	
		end
	end
end
AddPrefabPostInit("minisign", ondraw)
AddPrefabPostInit("minisign_drawn", ondraw)

I am sorry if I can't help you.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...