aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/BehaviorRegistry.cpp
blob: 5c314ad0e5fe3c867fd5ee22bc97f2555a9faf9c (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& it : storage )
	{
		delete it.second;
	}

	delete defaultBehavior;
}

DispenseItemBehavior *BehaviorRegistry::get(Item *key)
{
	auto it = storage.find(key);

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

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