outfit improvements
This commit is contained in:
parent
4125a94ec4
commit
c999a49dc7
|
@ -5,6 +5,46 @@ local window = nil
|
||||||
local outfits = nil
|
local outfits = nil
|
||||||
local currentOutfit = 1
|
local currentOutfit = 1
|
||||||
|
|
||||||
|
-- private functions
|
||||||
|
local function update()
|
||||||
|
local creatureWidget = window:getChildById('creature')
|
||||||
|
creatureWidget:setOutfitType(outfits[currentOutfit][1])
|
||||||
|
|
||||||
|
local nameWidget = window:getChildById('name')
|
||||||
|
nameWidget:setText(outfits[currentOutfit][2])
|
||||||
|
|
||||||
|
local availableAddons = outfits[currentOutfit][3]
|
||||||
|
local addon1 = window:getChildById('addon1')
|
||||||
|
local addon2 = window:getChildById('addon2')
|
||||||
|
local addon3 = window:getChildById('addon3')
|
||||||
|
addon1:setChecked(false)
|
||||||
|
addon2:setChecked(false)
|
||||||
|
addon3:setChecked(false)
|
||||||
|
|
||||||
|
-- Maybe rework this someday
|
||||||
|
if availableAddons == 1 then
|
||||||
|
addon1:setChecked(true)
|
||||||
|
elseif availableAddons == 2 then
|
||||||
|
addon2:setChecked(true)
|
||||||
|
elseif availableAddons == 3 then
|
||||||
|
addon1:setChecked(true)
|
||||||
|
addon2:setChecked(true)
|
||||||
|
elseif availableAddons == 4 then
|
||||||
|
addon3:setChecked(true)
|
||||||
|
elseif availableAddons == 5 then
|
||||||
|
addon1:setChecked(true)
|
||||||
|
addon3:setChecked(true)
|
||||||
|
elseif availableAddons == 6 then
|
||||||
|
addon2:setChecked(true)
|
||||||
|
addon3:setChecked(true)
|
||||||
|
elseif availableAddons == 7 then
|
||||||
|
addon1:setChecked(true)
|
||||||
|
addon2:setChecked(true)
|
||||||
|
addon3:setChecked(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Outfit.test()
|
function Outfit.test()
|
||||||
local button = UIButton.create()
|
local button = UIButton.create()
|
||||||
|
@ -25,8 +65,27 @@ function Outfit.create(creature, outfitList)
|
||||||
local creatureWidget = window:getChildById('creature')
|
local creatureWidget = window:getChildById('creature')
|
||||||
creatureWidget:setCreature(creature)
|
creatureWidget:setCreature(creature)
|
||||||
|
|
||||||
|
local firstColor = UIWidget.create()
|
||||||
|
window:addChild(firstColor)
|
||||||
|
firstColor:setStyle('ColorFirst')
|
||||||
|
|
||||||
|
for i=0,18 do
|
||||||
|
for j=0,6 do
|
||||||
|
local color = UICheckBox.create()
|
||||||
|
window:addChild(color)
|
||||||
|
|
||||||
|
local outfitColor = getOufitColor(j*19 + i)
|
||||||
|
|
||||||
|
color:setStyle('Color')
|
||||||
|
color:setBackgroundColor(outfitColor)
|
||||||
|
color:setMarginTop(j * 3 + j * 12)
|
||||||
|
color:setMarginLeft(i * 3 + i * 12)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
outfits = outfitList
|
outfits = outfitList
|
||||||
currentOutfit = 1
|
currentOutfit = 1
|
||||||
|
update()
|
||||||
end
|
end
|
||||||
|
|
||||||
function Outfit.destroy()
|
function Outfit.destroy()
|
||||||
|
@ -37,31 +96,26 @@ function Outfit.destroy()
|
||||||
end
|
end
|
||||||
|
|
||||||
function Outfit.nextType()
|
function Outfit.nextType()
|
||||||
local creatureWidget = window:getChildById('creature')
|
|
||||||
currentOutfit = currentOutfit + 1
|
currentOutfit = currentOutfit + 1
|
||||||
if currentOutfit > #outfits then
|
if currentOutfit > #outfits then
|
||||||
currentOutfit = 1
|
currentOutfit = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
creatureWidget:setOutfitType(outfits[currentOutfit][1])
|
update()
|
||||||
|
|
||||||
-- TODO: update addons
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Outfit.previousType()
|
function Outfit.previousType()
|
||||||
local creatureWidget = window:getChildById('creature')
|
|
||||||
currentOutfit = currentOutfit - 1
|
currentOutfit = currentOutfit - 1
|
||||||
if currentOutfit <= 0 then
|
if currentOutfit <= 0 then
|
||||||
currentOutfit = #outfits
|
currentOutfit = #outfits
|
||||||
end
|
end
|
||||||
|
|
||||||
creatureWidget:setOutfitType(outfits[currentOutfit][1])
|
update()
|
||||||
|
|
||||||
-- TODO: update addons
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- private functions
|
|
||||||
|
|
||||||
-- hooked events
|
-- hooked events
|
||||||
|
|
||||||
connect(Game, { onOpenOutfitWindow = Outfit.create,
|
connect(Game, { onOpenOutfitWindow = Outfit.create,
|
||||||
|
|
|
@ -1,6 +1,24 @@
|
||||||
|
ColorCheckBox < UICheckBox
|
||||||
|
size: 12 12
|
||||||
|
box-size: 12 12
|
||||||
|
background-color: #ffffffff
|
||||||
|
|
||||||
|
image:
|
||||||
|
source: /core_styles/images/empty_rect.png
|
||||||
|
|
||||||
|
ColorFirst < UIWidget
|
||||||
|
id: color
|
||||||
|
margin.left: 20
|
||||||
|
anchors.top: creature.top
|
||||||
|
anchors.left: creature.right
|
||||||
|
|
||||||
|
Color < ColorCheckBox
|
||||||
|
anchors.top: color.top
|
||||||
|
anchors.left: color.right
|
||||||
|
|
||||||
Window
|
Window
|
||||||
title: Select Outfit
|
title: Select Outfit
|
||||||
size: 256 320
|
size: 420 280
|
||||||
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
@ -40,6 +58,7 @@ Window
|
||||||
anchors.left: creature.left
|
anchors.left: creature.left
|
||||||
|
|
||||||
CheckBox
|
CheckBox
|
||||||
|
id: addon1
|
||||||
text: Addon 1
|
text: Addon 1
|
||||||
enabled: false
|
enabled: false
|
||||||
margin.top: 10
|
margin.top: 10
|
||||||
|
@ -48,6 +67,7 @@ Window
|
||||||
anchors.left: prev.left
|
anchors.left: prev.left
|
||||||
|
|
||||||
CheckBox
|
CheckBox
|
||||||
|
id: addon2
|
||||||
text: Addon 2
|
text: Addon 2
|
||||||
enabled: false
|
enabled: false
|
||||||
margin.top: 10
|
margin.top: 10
|
||||||
|
@ -56,6 +76,7 @@ Window
|
||||||
anchors.left: prev.left
|
anchors.left: prev.left
|
||||||
|
|
||||||
CheckBox
|
CheckBox
|
||||||
|
id: addon3
|
||||||
text: Addon 3
|
text: Addon 3
|
||||||
enabled: false
|
enabled: false
|
||||||
margin.top: 10
|
margin.top: 10
|
||||||
|
|
|
@ -132,6 +132,9 @@ void LuaInterface::registerFunctions()
|
||||||
// UICheckBox
|
// UICheckBox
|
||||||
g_lua.registerClass<UICheckBox, UIWidget>();
|
g_lua.registerClass<UICheckBox, UIWidget>();
|
||||||
g_lua.bindClassStaticFunction<UICheckBox>("create", &UIWidget::create<UICheckBox>);
|
g_lua.bindClassStaticFunction<UICheckBox>("create", &UIWidget::create<UICheckBox>);
|
||||||
|
g_lua.bindClassMemberFunction<UICheckBox>("isChecked", &UICheckBox::isChecked);
|
||||||
|
g_lua.bindClassMemberFunction<UICheckBox>("setChecked", &UICheckBox::setChecked);
|
||||||
|
|
||||||
|
|
||||||
// UIWindow
|
// UIWindow
|
||||||
g_lua.registerClass<UIWindow, UIWidget>();
|
g_lua.registerClass<UIWindow, UIWidget>();
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <otclient/ui/uiitem.h>
|
#include <otclient/ui/uiitem.h>
|
||||||
#include <otclient/ui/uicreature.h>
|
#include <otclient/ui/uicreature.h>
|
||||||
#include <otclient/ui/uimap.h>
|
#include <otclient/ui/uimap.h>
|
||||||
|
#include <otclient/core/outfit.h>
|
||||||
|
|
||||||
void OTClient::registerLuaFunctions()
|
void OTClient::registerLuaFunctions()
|
||||||
{
|
{
|
||||||
|
@ -44,6 +45,7 @@ void OTClient::registerLuaFunctions()
|
||||||
g_lua.bindGlobalFunction("setOnClose", std::bind(&OTClient::setOnClose, &g_client, _1));
|
g_lua.bindGlobalFunction("setOnClose", std::bind(&OTClient::setOnClose, &g_client, _1));
|
||||||
g_lua.bindGlobalFunction("importDat", std::bind(&ThingsType::load, &g_thingsType, _1));
|
g_lua.bindGlobalFunction("importDat", std::bind(&ThingsType::load, &g_thingsType, _1));
|
||||||
g_lua.bindGlobalFunction("importSpr", std::bind(&SpriteManager::load, &g_sprites, _1));
|
g_lua.bindGlobalFunction("importSpr", std::bind(&SpriteManager::load, &g_sprites, _1));
|
||||||
|
g_lua.bindGlobalFunction("getOufitColor", Outfit::getColor);
|
||||||
|
|
||||||
g_lua.registerClass<ProtocolLogin, Protocol>();
|
g_lua.registerClass<ProtocolLogin, Protocol>();
|
||||||
g_lua.bindClassStaticFunction<ProtocolLogin>("create", &ProtocolLogin::create);
|
g_lua.bindClassStaticFunction<ProtocolLogin>("create", &ProtocolLogin::create);
|
||||||
|
|
Loading…
Reference in New Issue