Jump to content

rezecib

Registered Users
  • Posts

    3902
  • Joined

  • Last visited

Reputation

3205 Excellent

Converted

  • Biography
    If you're curious, my name is supposed to be pronounced reh-zeh-sheeb. It's number 273, as a name, in lojban.

    I studied bioengineering as an undergrad, and did a masters in artificial intelligence / machine learning.

    I like games, programming, and thinking about the future.
  • Location
    New York, USA
  • Modder
    http://forums.kleientertainment.com/user/350174-rezecib/?tab=idm

Badges

  • Visited by the Title Fairy
    Resumptus
  • Don't Starve Together
    Contributor

Recent Profile Visitors

37500 profile views
  1. Actions do have a strfn that you can define. However to do this for an existing action you will have to monkeypatch the existing action's strfn. This doesn't really relate to the componentaction part of this (which is just about deciding whether an action can be shown to be performed). And yes there is action priority, also on the action definition side rather than the componentaction side. Look at scripts/actions.lua for usage. Only two actions can be displayed, but the logic is a bit complicated. You can look at the component PlayerActionPicker:DoGetMouseActions for details.
  2. In the middle of the component PlayerController:OnUpdate, there's a check: if self.handler ~= nil and self.inst:HasTag("usingmagiciantool") then self:CancelPlacement() self:CancelDeployPlacement() self:CancelAOETargeting() end However, below this, there's a check to see if the player has an item on their cursor, which then starts placement mode: local placer_item = controller_mode and self:GetCursorInventoryObject() or self.inst.replica.inventory:GetActiveItem() --show deploy placer if self.deploy_mode and self.placer == nil and placer_item ~= nil and placer_item.replica.inventoryitem ~= nil and placer_item.replica.inventoryitem:IsDeployable(self.inst) then local placer_name = placer_item.replica.inventoryitem:GetDeployPlacerName() local placer_skin = placer_item.AnimState:GetSkinBuild() --hack that relies on the build name to match the linked skinname if placer_skin == "" then placer_skin = nil end if self.deployplacer ~= nil and (self.deployplacer.prefab ~= placer_name or self.deployplacer.skinname ~= placer_skin) then self:CancelDeployPlacement() end if self.deployplacer == nil then self.deployplacer = SpawnPrefab(placer_name, placer_skin, nil, self.inst.userid ) if self.deployplacer ~= nil then self.deployplacer.components.placer:SetBuilder(self.inst, nil, placer_item) self.deployplacer.components.placer.testfn = function(pt) local mouseover = TheInput:GetWorldEntityUnderMouse() return placer_item:IsValid() and placer_item.replica.inventoryitem ~= nil and placer_item.replica.inventoryitem:CanDeploy(pt, mouseover, self.inst, self.deployplacer.Transform:GetRotation()), (mouseover ~= nil and not mouseover:HasTag("walkableplatform") and not mouseover:HasTag("walkableperipheral") and not mouseover:HasTag("ignoremouseover")) or TheInput:GetHUDEntityUnderMouse() ~= nil end self.deployplacer.components.placer:OnUpdate(0) --so that our position is accurate on the first frame end end else self:CancelDeployPlacement() end In the case of deploy-placement, this means that on every frame placement is cancelled and restarted immediately on the same frame. It seems that the intent here was to not allow placement, but placement is actually functional despite this, somehow. Rather than thrashing on creating and destroying the placer, maybe this should just allow placement? Or the placer creation block should check the same condition to avoid thrashing. This is particularly problematic with the Geometric Placement mod, because creating placers creates a grid, which is more expensive than just destroying and recreating the placer itself.
  3. Try using 3.1.1 (it's the last version I published for single-player on steam, and haven't gotten other crash reports, so it's possible I broke something in the DST-focused updates since then)
  4. Expected behavior: When paused, mousing over the UI or invalid ground tiles hides the pitchfork tile indicator (matching behavior when unpaused) Observed behavior: When paused, mousing over the UI or invalid ground tiles keeps the pitchfork tile indicator and it won't disappear until unpaused I believe this is due to PlayerController:OnWallUpdate missing the section of PlayerController:OnUpdate that handles action selection and updating placers. (this came to my attention due to a crash with Geometric Placement, caused by inadventently sharing some global state that came into conflict when multiple grids are shown simultaneously)
  5. Translation (just Google translate): For what it's worth, I get about 6 comments a day about this specific issue between the two mods of mine that I've updated since the mod uploader was switched to the v2 workshop API. I've been suggesting deleting the mod folder, verifying, and reinstalling as workarounds, but it seems that this mostly does not fix the issue. Has anyone found more successful workarounds? Is this something the devs could instrument and monitor to determine the failure cases that result in these stuck downloads? As a mod author I'm at a loss on what I can do to help players who encounter this.
  6. I update them at the same time (if anything I forget this one sometimes x_x)
  7. Normally with a controller, numbers show on badges when you open the inventory (right trigger). However, in scripts/widgets/statusdisplays:ShowStatusNumbers(), it doesn't check if the moisture badge is visible when setting the number to show. This is fine when first loading in if you're dry, but the moisture badge never clears the number text after it has been set, so if you get wet and dry off, it leaves a "1" in the text. Opening the controller inventory again shows this floating "1" even though the rest of the badge is hidden. This should be an easy fix-- the moisture badge already tracks whether it's active or not in self.active, so you can just check that in statusdisplays:ShowStatusNumbers.
  8. Sorry, my bad, I forgot to test on a boat. Uploaded a fix for that (and several other bugs) just now.
  9. Unfortunately I think only the PC version supports mods.
  10. function Text:SetSize(sz) if LOC then sz = sz * LOC.GetTextScale() end self.inst.TextWidget:SetSize(sz) self.size = sz end function Text:SetSize(sz) return self.size end I assume the second entry was intended to get GetSize. It also seems a bit problematic that self.size stores the inflated size, so if one were to store sometextwidget.size and use it to set it later, it would cause compounding of the LOC.GetTextScale() multiplier.
  11. But Combined Status doesn't show the stats of items, maybe you're thinking of Display Food Values or the Crockpot Simulator?
  12. @Zeldicon What do you think could be updated in response to Warly and the food changes?
  13. In scripts/prefabs/veggies.lua, placers were added for each of the veggie seeds in the MakeVeggie function. However, they don't get added to the returned prefab table because only the first three return values are captured. This is also an obstacle for Geometric Placement compatibility, as the placer prefab is missing.
  14. @legends0356 It needs to be extracted from the zip, so that it goes: mods/CombinedStatus/modinfo.lua; if the modinfo isn't visible at a path like mods/somemodname/modinfo, then the game won't see it.
  15. I don't maintain the server version so it's up to them to update it
×
  • Create New...