outfit looktype change

This commit is contained in:
Henrique 2011-11-15 00:04:07 -02:00
parent 591f8c2c7c
commit b7125738d8
5 changed files with 59 additions and 0 deletions

View File

@ -2,6 +2,8 @@ Outfit = {}
-- private variables -- private variables
local window = nil local window = nil
local outfits = nil
local currentOutfit = 1
-- public functions -- public functions
function Outfit.test() function Outfit.test()
@ -18,9 +20,13 @@ end
function Outfit.create(creature, outfitList) function Outfit.create(creature, outfitList)
Outfit.destroy() Outfit.destroy()
window = loadUI("/outfit/outfit.otui", UI.root) window = loadUI("/outfit/outfit.otui", UI.root)
window:lock()
local creatureWidget = window:getChildById('creature') local creatureWidget = window:getChildById('creature')
creatureWidget:setCreature(creature) creatureWidget:setCreature(creature)
outfits = outfitList
currentOutfit = 1
end end
function Outfit.destroy() function Outfit.destroy()
@ -30,6 +36,30 @@ function Outfit.destroy()
end end
end end
function Outfit.nextType()
local creatureWidget = window:getChildById('creature')
currentOutfit = currentOutfit + 1
if currentOutfit > #outfits then
currentOutfit = 1
end
creatureWidget:setOutfitType(outfits[currentOutfit][1])
-- TODO: update addons
end
function Outfit.previousType()
local creatureWidget = window:getChildById('creature')
currentOutfit = currentOutfit - 1
if currentOutfit <= 0 then
currentOutfit = #outfits
end
creatureWidget:setOutfitType(outfits[currentOutfit][1])
-- TODO: update addons
end
-- private functions -- private functions
-- hooked events -- hooked events

View File

@ -10,6 +10,22 @@ Window
anchors.left: parent.left anchors.left: parent.left
margin.top: 30 margin.top: 30
margin.left: 20 margin.left: 20
Button
onClick: Outfit.previousType()
text: <<
width: 32
margin.top: 3
anchors.top: creature.bottom
anchors.left: creature.left
Button
onClick: Outfit.nextType()
text: >>
width: 32
margin.top: 3
anchors.top: creature.bottom
anchors.right: creature.right
HorizontalSeparator HorizontalSeparator
anchors.left: parent.left anchors.left: parent.left

View File

@ -77,6 +77,8 @@ void OTClient::registerLuaFunctions()
g_lua.bindClassStaticFunction<UICreature>("create", &UICreature::create<UICreature>); g_lua.bindClassStaticFunction<UICreature>("create", &UICreature::create<UICreature>);
g_lua.bindClassMemberFunction<UICreature>("getCreature", &UICreature::getCreature); g_lua.bindClassMemberFunction<UICreature>("getCreature", &UICreature::getCreature);
g_lua.bindClassMemberFunction<UICreature>("setCreature", &UICreature::setCreature); g_lua.bindClassMemberFunction<UICreature>("setCreature", &UICreature::setCreature);
g_lua.bindClassMemberFunction<UICreature>("setOutfitType", &UICreature::setOutfitType);
g_lua.registerClass<UIMap, UIWidget>(); g_lua.registerClass<UIMap, UIWidget>();
g_lua.bindClassStaticFunction<UIMap>("create", &UIWidget::create<UIMap>); g_lua.bindClassStaticFunction<UIMap>("create", &UIWidget::create<UIMap>);

View File

@ -50,3 +50,12 @@ void UICreature::onStyleApply(const OTMLNodePtr& styleNode)
UIWidget::onStyleApply(styleNode); UIWidget::onStyleApply(styleNode);
} }
void UICreature::setOutfitType(int outfitType)
{
if(m_creature) {
Outfit outfit = m_creature->getOutfit();
outfit.setType(outfitType);
m_creature->setOutfit(outfit);
}
}

View File

@ -34,6 +34,8 @@ public:
void render(); void render();
void setCreature(const CreaturePtr& creature) { m_creature = creature; } void setCreature(const CreaturePtr& creature) { m_creature = creature; }
void setOutfitType(int outfitType);
CreaturePtr getCreature() { return m_creature; } CreaturePtr getCreature() { return m_creature; }
protected: protected: