mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 11:13:37 +00:00
77 lines
2 KiB
C++
77 lines
2 KiB
C++
#include "../../Minecraft.World/Platform/stdafx.h"
|
|
|
|
#include "../../Minecraft.World/Containers/Slot.h"
|
|
#include "../../Minecraft.World/Items/ItemInstance.h"
|
|
|
|
#include "SlotItemControlBase.h"
|
|
#include "SlotProgressControl.h"
|
|
|
|
int SlotProgressControl::GetValue() {
|
|
int value = 0;
|
|
|
|
HXUIOBJ hVisual, hParent;
|
|
this->GetParent(&hVisual);
|
|
XuiElementGetParent(hVisual, &hParent);
|
|
|
|
void* pvUserData;
|
|
XuiElementGetUserData(hParent, &pvUserData);
|
|
|
|
if (pvUserData != NULL) {
|
|
SlotControlUserDataContainer* pUserDataContainer =
|
|
(SlotControlUserDataContainer*)pvUserData;
|
|
|
|
std::shared_ptr<ItemInstance> item = std::shared_ptr<ItemInstance>();
|
|
|
|
if (pUserDataContainer->slot != NULL) {
|
|
item = pUserDataContainer->slot->getItem();
|
|
} else {
|
|
item = pUserDataContainer->item;
|
|
}
|
|
|
|
if (item != NULL) {
|
|
// TODO Should use getDamage instead even though it returns the same
|
|
// value
|
|
if (item->isDamaged())
|
|
value = item->getDamageValue();
|
|
else
|
|
value = 0;
|
|
}
|
|
} else {
|
|
LPCWSTR name;
|
|
XuiElementGetId(hParent, &name);
|
|
|
|
OutputDebugStringW(name);
|
|
OutputDebugString("\n");
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
void SlotProgressControl::GetRange(int* pnRangeMin, int* pnRangeMax) {
|
|
*pnRangeMin = 0;
|
|
*pnRangeMax = 0;
|
|
|
|
HXUIOBJ hVisual, hParent;
|
|
this->GetParent(&hVisual);
|
|
XuiElementGetParent(hVisual, &hParent);
|
|
|
|
void* pvUserData;
|
|
XuiElementGetUserData(hParent, &pvUserData);
|
|
|
|
if (pvUserData != NULL) {
|
|
SlotControlUserDataContainer* pUserDataContainer =
|
|
(SlotControlUserDataContainer*)pvUserData;
|
|
|
|
std::shared_ptr<ItemInstance> item = std::shared_ptr<ItemInstance>();
|
|
|
|
if (pUserDataContainer->slot != NULL) {
|
|
item = pUserDataContainer->slot->getItem();
|
|
} else {
|
|
item = pUserDataContainer->item;
|
|
}
|
|
|
|
if (item != NULL) {
|
|
*pnRangeMax = item->getMaxDamage();
|
|
}
|
|
}
|
|
} |