
/*
 * Copyright 2011-2022 Cuberite Contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#pragma once

class cBlockTorchHandler;
class cBlockLeverHandler;
class cBlockButtonHandler;
class cBlockTripwireHookHandler;
class cBlockDoorHandler;
class cBlockPistonHandler;





template<BLOCKTYPE T>
class GetHandlerCompileTime;





template<>
class GetHandlerCompileTime<E_BLOCK_TORCH>
{
public:
	typedef cBlockTorchHandler type;
};





template<>
class GetHandlerCompileTime<E_BLOCK_LEVER>
{
public:
	typedef cBlockLeverHandler type;
};





template<>
class GetHandlerCompileTime<E_BLOCK_STONE_BUTTON>
{
public:
	typedef cBlockButtonHandler type;
};





template<>
class GetHandlerCompileTime<E_BLOCK_TRIPWIRE_HOOK>
{
public:
	typedef cBlockTripwireHookHandler type;
};





template<>
class GetHandlerCompileTime<E_BLOCK_WOODEN_DOOR>
{
public:
	typedef cBlockDoorHandler type;
};





template<>
class GetHandlerCompileTime<E_BLOCK_PISTON>
{
public:
	typedef cBlockPistonHandler type;
};

