aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/BehaviorRegistry.cpp
blob: 8689f12903a3ff86df2f32edd6758fe7c93d55db (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
#include "stdafx.h"

#include "BehaviorRegistry.h"

BehaviorRegistry::BehaviorRegistry(DispenseItemBehavior *defaultValue)
{
	defaultBehavior = defaultValue;
}

BehaviorRegistry::~BehaviorRegistry()
{
	for(AUTO_VAR(it, storage.begin()); it != storage.end(); ++it)
	{
		delete it->second;
	}

	delete defaultBehavior;
}

DispenseItemBehavior *BehaviorRegistry::get(Item *key)
{
	AUTO_VAR(it, storage.find(key));

	return (it == storage.end()) ? defaultBehavior : it->second;
}

void BehaviorRegistry::add(Item *key, DispenseItemBehavior *value)
{
	storage.insert(make_pair(key, value));
}