aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/GameRules/BiomeOverride.cpp
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/Common/GameRules/BiomeOverride.cpp
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/Common/GameRules/BiomeOverride.cpp')
-rw-r--r--Minecraft.Client/Common/GameRules/BiomeOverride.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/GameRules/BiomeOverride.cpp b/Minecraft.Client/Common/GameRules/BiomeOverride.cpp
new file mode 100644
index 00000000..22cc0c7a
--- /dev/null
+++ b/Minecraft.Client/Common/GameRules/BiomeOverride.cpp
@@ -0,0 +1,59 @@
+#include "stdafx.h"
+#include "..\..\..\Minecraft.World\StringHelpers.h"
+#include "BiomeOverride.h"
+
+BiomeOverride::BiomeOverride()
+{
+ m_tile = 0;
+ m_topTile = 0;
+ m_biomeId = 0;
+}
+
+void BiomeOverride::writeAttributes(DataOutputStream *dos, UINT numAttrs)
+{
+ GameRuleDefinition::writeAttributes(dos, numAttrs + 3);
+
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_biomeId);
+ dos->writeUTF(_toString(m_biomeId));
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_tileId);
+ dos->writeUTF(_toString(m_tile));
+ ConsoleGameRules::write(dos, ConsoleGameRules::eGameRuleAttr_topTileId);
+ dos->writeUTF(_toString(m_topTile));
+}
+
+void BiomeOverride::addAttribute(const wstring &attributeName, const wstring &attributeValue)
+{
+ if(attributeName.compare(L"tileId") == 0)
+ {
+ int value = _fromString<int>(attributeValue);
+ m_tile = value;
+ app.DebugPrintf("BiomeOverride: Adding parameter tileId=%d\n",m_tile);
+ }
+ else if(attributeName.compare(L"topTileId") == 0)
+ {
+ int value = _fromString<int>(attributeValue);
+ m_topTile = value;
+ app.DebugPrintf("BiomeOverride: Adding parameter topTileId=%d\n",m_topTile);
+ }
+ else if(attributeName.compare(L"biomeId") == 0)
+ {
+ int value = _fromString<int>(attributeValue);
+ m_biomeId = value;
+ app.DebugPrintf("BiomeOverride: Adding parameter biomeId=%d\n",m_biomeId);
+ }
+ else
+ {
+ GameRuleDefinition::addAttribute(attributeName, attributeValue);
+ }
+}
+
+bool BiomeOverride::isBiome(int id)
+{
+ return m_biomeId == id;
+}
+
+void BiomeOverride::getTileValues(BYTE &tile, BYTE &topTile)
+{
+ if(m_tile != 0) tile = (BYTE)m_tile;
+ if(m_topTile != 0) topTile = (BYTE)m_topTile;
+} \ No newline at end of file