Jump to content

The Big List Of Mod-Related Code Suggestions


Recommended Posts

Welcome back! No, there's no dev here anymore. Check out my Stagnation of the Modding Community thread for my thoughts on that.

EDIT: Oh, and added "port the mod tools" to the OP.

Thanks for the pointer and the OP addition. I in fact just finished reading the Stagnation thread before seeing the notification for your reply, following the references (and references inside references) in the OP. (for some reason I got no notifications for the stagnation thread, even though you mentioned me there)

It's a pity we no longer have direct support, but hopefully SethR will manage to solve at least some of these issues.

Link to comment
Share on other sites

@squeek

The old way of doing player post init is working fine for me at the moment, using RoG for default characters, now you said its broken, so not sure if it will work on all characters or only on deflaut ones.

Link to comment
Share on other sites

@squeek

The old way of doing player post init is working fine for me at the moment, using RoG for default characters, now you said its broken, so not sure if it will work on all characters or only on deflaut ones.

Yeah, that got fixed in the March 3rd patch. It's still not ideal (a proper PlayerPostInit would be way better), but that technique is working again.
Link to comment
Share on other sites

Well, we can always keep it up by posting.

 

So:

Smothered and extinguished objects and structures keep showing smoldering description upon inspection until game is reloaded.

 

Lazy solution: change line 81 in inspectable.lua to:

    if self.inst.component.burnable and self.inst.component.burnable:IsSmoldering() then

Easy solution: instead, add this line to Burnable:StopSmoldering() and Burnable:Extinguish() in burnable.lua:

        if self.inst.components.inspectable then self.inst.components.inspectable.smoldering = false end

Proper solution: change line 81 in inspectable.lua as stated above and delete Inspectable:SetSmoldering(), and delete lines 151-153 and 182 in burnable.lua.

--

The burnable component doesn't have an OnSave() function, thus the prefabs rely on themselves to check for their smoldering/burning/burnt status when saving. This is not only an inconvenience when creating new prefabs, but also leads to an exploit. The prefabs I have checked either don't save any state or only save burning or burnt state to burnt, so any smoldering prefab will be reset to normal upon reloading, and saving and reloading while on fire makes them reset or burnt, in any case eliminating the threat of fire. The solution would be to have an onsave() within the burnable component, obviously.

--

While I'm at it, have Ignite() and Extinguish() call StopSmoldering() instead of repeating the same code in lines 179-187 and 290-301 respectively.

--

And I think I'd reverse the order of the checks in Inspectable:GetDescription(), elseif nesting them or returning the description when possible.
function Inspectable:GetDescription(viewer)    local desc = nil		if self.inst.component.burnable and self.inst.component.burnable:IsSmoldering() then		desc = GetString(viewer.prefab, "DESCRIBE_SMOLDERING")		elseif TheSim:GetLightAtPoint(self.inst.Transform:GetWorldPosition()) < TUNING.DARK_CUTOFF then		desc = GetString(viewer.prefab, "DESCRIBE_TOODARK")		else		if type(self.description) == "function" then			desc = self.description(self.inst, viewer)		else			desc = self.description		end				if desc == nil then			desc = GetDescription(string.upper(viewer.prefab), self.inst, self:GetStatus(viewer))		end	end		return descend

--

What's the point in having both a flag and a tag for the same? See lines 140 and 141 in burnable.lua. I'd expect any one of them to be enough, right?

--

 

I know, I know, I could post them all separately to keep this thread up. Maybe next time.

Link to comment
Share on other sites

Is there still any dev overseeing this forum, or at least looking out for modding? I haven't been around lately, but it sure looks like there isn't...

Welcome back! No, there's no dev here anymore. Check out my Stagnation of the Modding Community thread for my thoughts on that.

EDIT: Oh, and added "port the mod tools" to the OP.

Yeah, and maybe, with a little luck, once the whole DLC business blows over, the devs can turn attention back to mods.

I'm not a modder, but boy I am glad to see you old-time modders still around working with code and helping out. Really hope someone from the dev team comes back to help and guide! I remember the days I've been entertained by lurking the mod forums to see how codes were fixed and written and stuff. :'D

Link to comment
Share on other sites

bumpy bump

 

KLEI, fix at least something easy.

like morgue

 

$diff morguescreen.lua scripts/screens/morguescreen.lua237,238c237<             local atlas = (table.contains(MODCHARACTERLIST, character) and "images/saveslot_portraits/"..character..".xml") or "images/saveslot_portraits.xml"<                       DECEASED.portrait:SetTexture(atlas, character..".tex")--->             DECEASED.portrait:SetTexture("images/saveslot_portraits.xml", character..".tex")

patch from squeek - doesn't take much time, but noticeable improvement for whole game

Link to comment
Share on other sites

Since most of the discussion has been centered here about the mod API and related issues, here's a link to the post I made about the changes that got released today: http://forums.kleientertainment.com/topic/36748-mod-api-updates-api-version-6-may-23-2014/

Updated the OP of this thread with details about which suggestions have gotten implemented/addressed/fixed and when.
Link to comment
Share on other sites

@squeek

Do you have any more info on the TextEdit widget clipboard support? I tried calling self.console_edit:SetAllowClipboardPaste(true), where self is a ConsoleScreen object, but I can't get pasting to work (I tried pasting via either CTRL-V and CTRL-SHIFT-V, is the hotkey different?). Is there something I'm not getting, or is clipboard support just broken under Linux?

Link to comment
Share on other sites

I don't have any knowledge of anything but, How do I open my mods folder? c:

Well, it's a folder, so you just double click it. If you're asking about where is the folder, check this guide, item 3.

Though for further questions post them in a relevant thread or start another one, to keep this one on topic.

Link to comment
Share on other sites

@squeek

Do you have any more info on the TextEdit widget clipboard support? I tried calling self.console_edit:SetAllowClipboardPaste(true), where self is a ConsoleScreen object, but I can't get pasting to work (I tried pasting via either CTRL-V and CTRL-SHIFT-V, is the hotkey different?). Is there something I'm not getting, or is clipboard support just broken under Linux?

My guess would be it's broken under Linux. It works on Windows as you'd expect (CTRL+V).
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...