aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/GameRules/NamedAreaRuleDefinition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Common/GameRules/NamedAreaRuleDefinition.cpp')
-rw-r--r--Minecraft.Client/Common/GameRules/NamedAreaRuleDefinition.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/GameRules/NamedAreaRuleDefinition.cpp b/Minecraft.Client/Common/GameRules/NamedAreaRuleDefinition.cpp
new file mode 100644
index 00000000..41ff15e8
--- /dev/null
+++ b/Minecraft.Client/Common/GameRules/NamedAreaRuleDefinition.cpp
@@ -0,0 +1,84 @@
+#include "stdafx.h"
+#include "NamedAreaRuleDefinition.h"
+#include "..\..\..\Minecraft.World\StringHelpers.h"
+#include "..\..\..\Minecraft.World\net.minecraft.world.phys.h"
+
+NamedAreaRuleDefinition::NamedAreaRuleDefinition()
+{
+ m_name = L"";
+ m_area = AABB::newPermanent(0,0,0,0,0,0);
+}
+
+NamedAreaRuleDefinition::~NamedAreaRuleDefinition()
+{
+ delete m_area;
+}
+
+void NamedAreaRuleDefinition::writeAttributes(DataOutputStream *dos, UINT numAttributes)
+{
+ GameRuleDefinition::writeAttributes(dos, numAttributes + 7);
+
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_name);
+ dos->writeUTF(m_name);
+
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_x0);
+ dos->writeUTF(_toString(m_area->x0));
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_y0);
+ dos->writeUTF(_toString(m_area->y0));
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_z0);
+ dos->writeUTF(_toString(m_area->z0));
+
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_x1);
+ dos->writeUTF(_toString(m_area->x1));
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_y1);
+ dos->writeUTF(_toString(m_area->y1));
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_z1);
+ dos->writeUTF(_toString(m_area->z1));
+}
+
+void NamedAreaRuleDefinition::addAttribute(const wstring &attributeName, const wstring &attributeValue)
+{
+ if(attributeName.compare(L"name") == 0)
+ {
+ m_name = attributeValue;
+#ifndef _CONTENT_PACKAGE
+ wprintf(L"NamedAreaRuleDefinition: Adding parameter name=%ls\n",m_name.c_str());
+#endif
+ }
+ else if(attributeName.compare(L"x0") == 0)
+ {
+ m_area->x0 = _fromString<int>(attributeValue);
+ app.DebugPrintf("NamedAreaRuleDefinition: Adding parameter x0=%f\n",m_area->x0);
+ }
+ else if(attributeName.compare(L"y0") == 0)
+ {
+ m_area->y0 = _fromString<int>(attributeValue);
+ if(m_area->y0 < 0) m_area->y0 = 0;
+ app.DebugPrintf("NamedAreaRuleDefinition: Adding parameter y0=%f\n",m_area->y0);
+ }
+ else if(attributeName.compare(L"z0") == 0)
+ {
+ m_area->z0 = _fromString<int>(attributeValue);
+ app.DebugPrintf("NamedAreaRuleDefinition: Adding parameter z0=%f\n",m_area->z0);
+ }
+ else if(attributeName.compare(L"x1") == 0)
+ {
+ m_area->x1 = _fromString<int>(attributeValue);
+ app.DebugPrintf("NamedAreaRuleDefinition: Adding parameter x1=%f\n",m_area->x1);
+ }
+ else if(attributeName.compare(L"y1") == 0)
+ {
+ m_area->y1 = _fromString<int>(attributeValue);
+ if(m_area->y1 < 0) m_area->y1 = 0;
+ app.DebugPrintf("NamedAreaRuleDefinition: Adding parameter y1=%f\n",m_area->y1);
+ }
+ else if(attributeName.compare(L"z1") == 0)
+ {
+ m_area->z1 = _fromString<int>(attributeValue);
+ app.DebugPrintf("NamedAreaRuleDefinition: Adding parameter z1=%f\n",m_area->z1);
+ }
+ else
+ {
+ GameRuleDefinition::addAttribute(attributeName, attributeValue);
+ }
+}