Files
MinecraftConsoles/Minecraft.Client/Common/GameRules/ConsoleGenerateStructure.h
ModMaker101 a9be52c41a Project modernization (#630)
* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides
2026-03-08 09:56:03 +07:00

42 lines
1.4 KiB
C++

#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<ConsoleGenerateStructureAction *> m_actions;
int m_dimension;
public:
ConsoleGenerateStructure();
virtual ConsoleGameRules::EGameRuleType getActionType() { return ConsoleGameRules::eGameRuleType_GenerateStructure; }
virtual void getChildren(vector<GameRuleDefinition *> *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();
EStructurePiece GetType() { return static_cast<EStructurePiece>(0); }
void addAdditonalSaveData(CompoundTag *tag) {}
void readAdditonalSaveData(CompoundTag *tag) {}
};