FrameworkZ 10.8.3
Provides a framework for Project Zomboid with various systems.
Loading...
Searching...
No Matches
CreateCharacterFaction.lua
Go to the documentation of this file.
2FrameworkZ.Interfaces:Register(FrameworkZ.UI.CreateCharacterFaction, "CreateCharacterFaction")
3
4function FrameworkZ.UI.CreateCharacterFaction:initialise()
5 ISPanel.initialise(self)
8 local title = "Faction"
9 local subtitle = "Select a faction for your character."
10 local factionWidth = 500
11 local factionHeight = 300
12 local dropdownWidth = self.width * 0.5
13 local middleX = self.width / 2
14 local yOffset = 0
15 local factionsList = FrameworkZ.Factions.List
16 self.initialFaction = nil
18 -- Get first available faction:
19 for k, v in pairs(factionsList) do
20 if not v.requiresWhitelist then
21 self.initialFaction = {k = k, v = v}
22 break
23 end
24 end
26 self.faction = self.initialFaction and self.initialFaction.k or ""
27
28 yOffset = self.uiHelper.GetHeight(UIFont.Title, title)
30 self.title = ISLabel:new(self.uiHelper.GetMiddle(self.width, UIFont.Title, title), yOffset, 25, title, 1, 1, 1, 1, UIFont.Title, true)
31 self.title:initialise()
32 self:addChild(self.title)
34 yOffset = yOffset + self.uiHelper.GetHeight(UIFont.Large, subtitle)
35
36 self.subtitle = ISLabel:new(self.uiHelper.GetMiddle(self.width, UIFont.Large, subtitle), yOffset, 25, subtitle, 1, 1, 1, 1, UIFont.Large, true)
37 self.subtitle:initialise()
38 self:addChild(self.subtitle)
40 yOffset = yOffset + 45
41
42 self.factionImage = ISImage:new(self.width / 2 - factionWidth / 2, yOffset, factionWidth, factionHeight, getTexture(self.initialFaction and self.initialFaction.v and self.initialFaction.v.logo or "media/textures/factions/missing-logo.png"))
45 self.factionImage:initialise()
46 self:addChild(self.factionImage)
47
48 yOffset = yOffset + 300
49
50 self.factionDropdown = ISComboBox:new(middleX - factionWidth / 2, yOffset, factionWidth, 25, self, self.onFactionSelected)
51 self.factionDropdown:addOptionWithData(self.initialFaction and self.initialFaction.v and self.initialFaction.v.name, self.initialFaction and self.initialFaction.k)
52
53 for k, v in pairs(factionsList) do
54 -- if get player get whitelisted factions == true then add option
55
56 if self.initialFaction and v ~= self.initialFaction.v and not v.requiresWhitelist then
57 self.factionDropdown:addOptionWithData(v.name, k)
58 elseif not self.initialFaction then
59 self.factionDropdown:addOptionWithData(v.name, k)
60 end
61 end
62
63 self.factionDropdown:initialise()
64 self:addChild(self.factionDropdown)
65
66 yOffset = yOffset + 30
67
68 local factionDescription = self.initialFaction and self.initialFaction.v and ('"' .. self.initialFaction.v.description .. '"') or ""
69
70 self.factionDescription = ISLabel:new(self.uiHelper.GetMiddle(self.width, UIFont.Medium, factionDescription), yOffset, 25, factionDescription, 1, 1, 1, 1, UIFont.Medium, true)
71 self.factionDescription:initialise()
73end
74
75function FrameworkZ.UI.CreateCharacterFaction:onFactionSelected(dropdown)
76 local factionID = dropdown:getOptionData(dropdown.selected)
77 local faction = FrameworkZ.Factions:GetFactionByID(factionID)
78
79 if faction then
81 local factionDescription = ('"' .. faction.description .. '"') or ""
82
83 self.factionImage.texture = getTexture(faction.logo)
85 self.factionDescription:setX(self.uiHelper.GetMiddle(self.width, UIFont.Medium, factionDescription))
86 end
87end
88
90 ISPanel.render(self)
91end
92
93function FrameworkZ.UI.CreateCharacterFaction:update()
94 ISPanel.update(self)
95end
96
97function FrameworkZ.UI.CreateCharacterFaction:new(parameters)
98 local o = {}
99
100 o = ISPanel:new(parameters.x, parameters.y, parameters.width, parameters.height)
101 setmetatable(o, self)
102 self.__index = self
103 o.backgroundColor = {r=0, g=0, b=0, a=0}
104 o.borderColor = {r=0, g=0, b=0, a=0}
105 o.moveWithMouse = false
106 o.playerObject = parameters.playerObject
107 o.faction = ""
109
110 return o
111end
112
void self uiHelper()
void FrameworkZ Classes List()
void self subtitle()
void self factionImage()
void if self initialFaction and v()
void self factionDropdown()
void local factionDescription()
void self factionImage scaledWidth()
void FrameworkZ UI CreateCharacterFaction()
Definition MainMenu.lua:89
void self faction()
void self factionImage scaledHeight()
void self title()
void yOffset()
void local width
void id()
void description()
void local option
Definition Items.lua:263
void self FrameworkZ UI self nil
Definition MainMenu.lua:95
void self self
Definition MainMenu.lua:89
void local middleX()
void local player()
void processingNotification backgroundColor a()
void self playerListPanel render()
void local getTexture()
void local name()
Factions module for FrameworkZ. Defines and interacts with FACTION object.
Definition Factions.lua:13
Contains all of the User Interfaces for FrameworkZ.