Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ModMain:
- local function iceboxPrefabPostInit(inst)
- if inst.components.container then
- local slotpos = {}
- for y = 3, 0, -1 do --changed from y = 2, 0, -1; IMPORTANT: DO NO CHANGE LAST NUMBER WILL CAUSE CRASH
- for x = 0, 2 do
- table.insert(slotpos, Vector3(80*x-80*2+90, 80*y-80*2+40,0))
- end
- end
- --For future use:
- inst.components.container.widgetanimbank = nil
- --inst.components.container.widgetanimbuild = "ui_chest_3x3"
- --inst.components.container.widgetpos = Vector3(0,200,0)
- inst.components.container.widgetbgimage = "mods/BiggerContainers/images/ui_chest_3x4.tex"
- inst.components.container.widgetpos = Vector3(186,224,0)
- --inst.components.container.bgimage:SetTint(0.2, 0.2, 1, 1)
- inst.components.container.widgetbgimagetint = {r=.61,g=.95,b=.99,a=1}
- --Set new container size
- inst.components.container.numslots = #slotpos
- inst.components.container.widgetslotpos = slotpos
- end
- end
- containerwidget
- function ContainerWidget:Open(container, doer)
- self:Close()
- if container.components.container.widgetbgimage then
- self.bgimage:SetTexture( container.components.container.widgetbgimage )
- end
- if container.components.container.widgetanimbank then
- self.bganim:GetAnimState():SetBank(container.components.container.widgetanimbank)
- end
- if container.components.container.widgetanimbuild then
- self.bganim:GetAnimState():SetBuild(container.components.container.widgetanimbuild)
- end
- if container.components.container.widgetpos then
- self:SetPosition(container.components.container.widgetpos)
- end
- if container.components.container.widgetbuttoninfo then
- self.button = self:AddChild(AnimButton("button_small"))
- self.button:SetPosition(container.components.container.widgetbuttoninfo.position)
- self.button:SetText(container.components.container.widgetbuttoninfo.text)
- self.button:SetOnClick( function() container.components.container.widgetbuttoninfo.fn(container, doer) end )
- self.button:SetFont(BUTTONFONT)
- self.button:SetTextSize(35)
- self.button.text:SetVAlign(ANCHOR_MIDDLE)
- self.button.text:SetColour(0,0,0,1)
- if container.components.container.widgetbuttoninfo.validfn then
- if container.components.container.widgetbuttoninfo.validfn(container, doer) then
- self.button:Enable()
- else
- self.button:Disable()
- end
- end
- end
- self.isopen = true
- self:Show()
- if self.bgimage.texture then
- self.bgimage:Show()
- else
- self.bganim:GetAnimState():PlayAnimation("open")
- end
- self.onitemlosefn = function(inst, data) self:OnItemLose(data) end
- self.inst:ListenForEvent("itemlose", self.onitemlosefn, container)
- self.onitemgetfn = function(inst, data) self:OnItemGet(data) end
- self.inst:ListenForEvent("itemget", self.onitemgetfn, container)
- local num_slots = math.min( container.components.container:GetNumSlots(), #container.components.container.widgetslotpos)
- local n = 1
- for k,v in ipairs(container.components.container.widgetslotpos) do
- local slot = InvSlot(n,"data/images/inv_slot.tex", self.owner, container.components.container)
- self.inv[n] = self:AddChild(slot)
- slot:SetPosition(v)
- -- MOD --
- --Add support for slot tinting
- if container.components.container.widgetbgimagetint then
- slot.bgimage:SetTint(
- container.components.container.widgetbgimagetint.r,
- container.components.container.widgetbgimagetint.g,
- container.components.container.widgetbgimagetint.b,
- container.components.container.widgetbgimagetint.a
- )
- end
- -- /MOD --
- slot:SetLeftMouseDown(function() self:ClickInvSlot(slot) end)
- slot:SetRightMouseDown(function() self:RightClickInvSlot(slot) end)
- local obj = container.components.container:GetItemInSlot(n)
- if obj then
- local tile = ItemTile(obj, self)
- slot:SetTile(tile)
- end
- n = n + 1
- end
- self.container = container
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement