1.8: Fixed inventory open packet.

master
Howaner 2014-09-11 23:17:27 +02:00
parent 6d5a5eb665
commit c7044fa1dd
3 changed files with 32 additions and 4 deletions

View File

@ -1515,10 +1515,9 @@ void cProtocol180::SendWindowOpen(const cWindow & a_Window)
cPacketizer Pkt(*this, 0x2d);
Pkt.WriteChar(a_Window.GetWindowID());
Pkt.WriteChar(a_Window.GetWindowType());
Pkt.WriteString(a_Window.GetWindowTitle());
Pkt.WriteString(a_Window.GetWindowTypeName());
Pkt.WriteString(Printf("{\"text\":\"%s\"}", a_Window.GetWindowTitle().c_str()));
Pkt.WriteChar(a_Window.GetNumNonInventorySlots());
Pkt.WriteBool(true);
if (a_Window.GetWindowType() == cWindow::wtAnimalChest)
{
Pkt.WriteInt(0); // TODO: The animal's EntityID

View File

@ -57,6 +57,34 @@ cWindow::~cWindow()
const AString cWindow::GetWindowTypeName(void) const
{
switch (m_WindowType)
{
case wtChest: return "minecraft:chest";
case wtWorkbench: return "minecraft:crafting_table";
case wtFurnace: return "minecraft:furnace";
case wtDropSpenser: return "minecraft:dispenser";
case wtEnchantment: return "minecraft:enchanting_table";
case wtBrewery: return "minecraft:brewing_stand";
case wtNPCTrade: return "minecraft:villager";
case wtBeacon: return "minecraft:beacon";
case wtAnvil: return "minecraft:anvil";
case wtHopper: return "minecraft:hopper";
case wtDropper: return "minecraft:dropper";
case wtAnimalChest: return "EntityHorse";
default:
{
ASSERT(!"Unknown inventory type!");
return "";
}
}
}
int cWindow::GetNumSlots(void) const
{
int res = 0;

View File

@ -63,7 +63,7 @@ public:
wtBeacon = 7,
wtAnvil = 8,
wtHopper = 9,
// Unknown: 10
wtDropper = 10,
wtAnimalChest = 11,
};
@ -76,6 +76,7 @@ public:
char GetWindowID(void) const { return m_WindowID; } // tolua_export
int GetWindowType(void) const { return m_WindowType; } // tolua_export
const AString GetWindowTypeName(void) const; // tolua_export
cWindowOwner * GetOwner(void) { return m_Owner; }
void SetOwner( cWindowOwner * a_Owner) { m_Owner = a_Owner; }