From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- .../Common/GameRules/ConsoleGenerateStructure.h | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Minecraft.Client/Common/GameRules/ConsoleGenerateStructure.h (limited to 'Minecraft.Client/Common/GameRules/ConsoleGenerateStructure.h') diff --git a/Minecraft.Client/Common/GameRules/ConsoleGenerateStructure.h b/Minecraft.Client/Common/GameRules/ConsoleGenerateStructure.h new file mode 100644 index 00000000..5b97b108 --- /dev/null +++ b/Minecraft.Client/Common/GameRules/ConsoleGenerateStructure.h @@ -0,0 +1,38 @@ +#pragma once +#include "GameRuleDefinition.h" +#include "..\..\..\Minecraft.World\StructurePiece.h" + +class Level; +class Random; +class BoundingBox; +class ConsoleGenerateStructureAction; +class XboxStructureActionPlaceContainer; +class GRFObject; + +class ConsoleGenerateStructure : public GameRuleDefinition, public StructurePiece +{ +private: + int m_x, m_y, m_z; + vector m_actions; + int m_dimension; +public: + ConsoleGenerateStructure(); + + virtual ConsoleGameRules::EGameRuleType getActionType() { return ConsoleGameRules::eGameRuleType_GenerateStructure; } + + virtual void getChildren(vector *children); + virtual GameRuleDefinition *addChild(ConsoleGameRules::EGameRuleType ruleType); + + virtual void writeAttributes(DataOutputStream *dos, UINT numAttrs); + virtual void addAttribute(const wstring &attributeName, const wstring &attributeValue); + + // StructurePiece + virtual BoundingBox *getBoundingBox(); + virtual bool postProcess(Level *level, Random *random, BoundingBox *chunkBB); + + void createContainer(XboxStructureActionPlaceContainer *action, Level *level, BoundingBox *chunkBB); + + bool checkIntersects(int x0, int y0, int z0, int x1, int y1, int z1); + + virtual int getMinY(); +}; \ No newline at end of file -- cgit v1.2.3