kiopho Posted December 8, 2015 Share Posted December 8, 2015 (edited) SOLVED Hi everyone ! As you know, when hopping on a boat, a widget is created containing the boat's equip slots, item slots, and the boat badge (health). What I'm looking to do, is change the position of the badge alone. There's a common function for all the boats, called "setupcontainer", coontaining the default position for it, which is changed depending on the type of boat the game generates the widget for. I wanna change "widgetboatbadgepos" from modmain.lua but I'm lacking the technical knowledge to do so. Any help would be greatly appreciated. The file is "boat.lua" in the prefabs folder and here's the functionlocal function setupcontainer(inst, slots, bank, build, inspectslots, inspectbank, inspectbuild, inspectboatbadgepos, inspectboatequiproot)inst:AddComponent("container")inst.components.container:SetNumSlots(#slots)inst.components.container.type = "boat"inst.components.container.side_align_tip = -500inst.components.container.canbeopened = false inst.components.container.widgetslotpos = slotsinst.components.container.widgetanimbank = bankinst.components.container.widgetanimbuild = buildinst.components.container.widgetboatbadgepos = Vector3(0, 40, 0)inst.components.container.widgetequipslotroot = Vector3(-80, 40, 0) local boatwidgetinfo = {}boatwidgetinfo.widgetslotpos = inspectslotsboatwidgetinfo.widgetanimbank = inspectbankboatwidgetinfo.widgetanimbuild = inspectbuildboatwidgetinfo.widgetboatbadgepos = inspectboatbadgeposboatwidgetinfo.widgetpos = Vector3(200, 0, 0)boatwidgetinfo.widgetequipslotroot = inspectboatequiprootinst.components.container.boatwidgetinfo = boatwidgetinfoend Edited December 8, 2015 by kiopho Link to comment https://forums.kleientertainment.com/forums/topic/60453-boat-badge/ Share on other sites More sharing options...
Kzisor Posted December 8, 2015 Share Posted December 8, 2015 @kiopho, the boat badge information is actually stored and located in widgets/containerwidget.lua. It specifically gets set in ContainerWidget:Open Line 141, when container.components.container.type is equal to "boat". I'd do something like this in order to change the location of the badge, so every time the container is opened it will automatically be reset back to the position you want.AddClassPostconstruct( "widgets/containerwidget", function( self ) local _ContainerOpen = self.ContainerOpen self.ContainerOpen = function(self, container, doer, boatwidget) _ContainerOpen(self, container, doer, boatwidget) local X = 150 local Y = 150 self.boatbadge:SetPosition( X, Y ) endend) Link to comment https://forums.kleientertainment.com/forums/topic/60453-boat-badge/#findComment-694797 Share on other sites More sharing options...
kiopho Posted December 8, 2015 Author Share Posted December 8, 2015 (edited) @Kzisor Thanks for the lightning fast answer ! I feel a little bit embarrassed because I was doing that exact thing but I wrote an "inst" instead of a "self" in the function. I read it times and times without noticing. I ended up thinking it wasn't the right way to do it. Thanks to you I was able to see it. I guess I should take a step back and get on the mods tomorrow :s Thank you buddy, and have a nice one.Cheers ! PS : here's my silly mistakelocal function BoatBadgeFix(inst) local oldOpen = self.Open function self:Open(container, doer, boatwidget) oldOpen(self, container, doer, boatwidget) self.boatbadge:SetPosition(100, 40, 0) end end AddClassPostConstruct("widgets/containerwidget", BoatBadgeFix) Edited December 8, 2015 by kiopho Link to comment https://forums.kleientertainment.com/forums/topic/60453-boat-badge/#findComment-694812 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now