aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/StructureFeatureSavedData.cpp
blob: 6c2aa4120548e520c8f5c0353ca9d5e317e83d86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"

#include "StructureFeatureSavedData.h"

wstring StructureFeatureSavedData::TAG_FEATURES = L"Features";

StructureFeatureSavedData::StructureFeatureSavedData(const wstring &idName) : SavedData(idName)
{
	this->pieceTags = new CompoundTag(TAG_FEATURES);
}

StructureFeatureSavedData::~StructureFeatureSavedData()
{
	delete pieceTags;
}

void StructureFeatureSavedData::load(CompoundTag *tag)
{
	this->pieceTags = tag->getCompound(TAG_FEATURES);
}

void StructureFeatureSavedData::save(CompoundTag *tag)
{
	tag->put(TAG_FEATURES, pieceTags->copy() );
}

CompoundTag *StructureFeatureSavedData::getFeatureTag(int chunkX, int chunkZ)
{
	return pieceTags->getCompound(createFeatureTagId(chunkX, chunkZ));
}

void StructureFeatureSavedData::putFeatureTag(CompoundTag *tag, int chunkX, int chunkZ)
{
	wstring name = createFeatureTagId(chunkX, chunkZ);
	tag->setName(name);
	pieceTags->put(name, tag);
}

wstring StructureFeatureSavedData::createFeatureTagId(int chunkX, int chunkZ)
{
	return L"[" + _toString<int>(chunkX) + L"," + _toString<int>(chunkZ) + L"]";
}

CompoundTag *StructureFeatureSavedData::getFullTag()
{
	return pieceTags;
}