/************************************************************************
* Minetest-c55
* Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
*
* content_mapnode.h
* voxelands - 3d voxel world sandbox game
* Copyright (C) Lisa 'darkrose' Milne 2014 <lisa@ltmnet.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>
*
* License updated from GPLv2 or later to GPLv3 or later by Lisa Milne
* for Voxelands.
************************************************************************/

#ifndef CONTENT_MAPNODE_HEADER
#define CONTENT_MAPNODE_HEADER

#include "mapnode.h"

void content_mapnode_init(bool repeat);
void content_mapnode_circuit(bool repeat);
void content_mapnode_farm(bool repeat);
void content_mapnode_furniture(bool repeat);
void content_mapnode_door(bool repeat);
void content_mapnode_stair(bool repeat);
void content_mapnode_slab(bool repeat);
void content_mapnode_special(bool repeat);
void content_mapnode_plants(bool repeat);

MapNode mapnode_translate_from_internal(MapNode n_from, u8 version);
MapNode mapnode_translate_to_internal(MapNode n_from, u8 version);

/*
	Node content type IDs
	Range: 0x0 - 0xFFF
*/

#define CONTENT_STONE 0x000
// FREE 0x001
#define CONTENT_WATER 0x002
#define CONTENT_TORCH_LEGACY 0x003
#define CONTENT_GLASSLIGHT 0x004
#define CONTENT_CHAIR 0x005
// FREE 0x006
#define CONTENT_TORCH 0x007
#define CONTENT_TABLE 0x008
#define CONTENT_WATERSOURCE 0x009
// FREE 0x00A-0x00C
#define CONTENT_SAFE 0x00D
#define CONTENT_SIGN_WALL 0x00E
#define CONTENT_CHEST 0x00F
#define CONTENT_FURNACE 0x010
#define CONTENT_LOCKABLE_CHEST 0x011
#define CONTENT_SIGN 0x012
#define CONTENT_SIGN_UD 0x013
#define CONTENT_LOCKABLE_FURNACE 0x014
#define CONTENT_FENCE 0x015
#define CONTENT_LOCKABLE_SIGN_WALL 0x016
#define CONTENT_LOCKABLE_SIGN 0x017
#define CONTENT_LOCKABLE_SIGN_UD 0x018
#define CONTENT_CREATIVE_CHEST 0x019
#define CONTENT_FURNACE_ACTIVE 0x01A
#define CONTENT_LOCKABLE_FURNACE_ACTIVE 0x01B
#define CONTENT_STEEL_FENCE 0x01C
#define CONTENT_STEEL_BARS 0x01D
#define CONTENT_RAIL 0x01E
// deprecated, just here for backwards compat
#define CONTENT_LADDER_LEGACY 0x01F
#define CONTENT_LAVA 0x020
#define CONTENT_LAVASOURCE 0x021
#define CONTENT_LADDER_WALL 0x022
#define CONTENT_LADDER_FLOOR 0x023
#define CONTENT_LADDER_ROOF 0x024
// walls
#define CONTENT_ROUGHSTONE_WALL 0x025
#define CONTENT_MOSSYCOBBLE_WALL 0x026
#define CONTENT_SANDSTONE_WALL 0x027
#define CONTENT_STONE_WALL 0x028
#define CONTENT_COBBLE_WALL 0x029
// FREE 2A-0x7C
// 0x7D-0x7F reserved values, air, ignore, etc
// FREE 0x80-0x7FE
#define CONTENT_GROWING_GRASS 0x7FF
#define CONTENT_GRASS 0x800
#define CONTENT_TREE 0x801
#define CONTENT_LEAVES 0x802
#define CONTENT_FARM_DIRT 0x803
#define CONTENT_MESE 0x804
#define CONTENT_MUD 0x805
#define CONTENT_COTTON 0x806
#define CONTENT_BORDERSTONE 0x807
#define CONTENT_WOOD 0x808
#define CONTENT_SAND 0x809
#define CONTENT_ROUGHSTONE 0x80a
#define CONTENT_STEEL 0x80b
#define CONTENT_GLASS 0x80c
#define CONTENT_MOSSYCOBBLE 0x80d
#define CONTENT_GRAVEL 0x80e
#define CONTENT_SANDSTONE 0x80f
#define CONTENT_CACTUS 0x810
#define CONTENT_BRICK 0x811
#define CONTENT_CLAY 0x812
#define CONTENT_PAPYRUS 0x813
#define CONTENT_BOOKSHELF 0x814
#define CONTENT_JUNGLETREE 0x815
#define CONTENT_JUNGLEGRASS 0x816
#define CONTENT_NC 0x817
#define CONTENT_NC_RB 0x818
#define CONTENT_APPLE 0x819
#define CONTENT_JUNGLEWOOD 0x81a
#define CONTENT_STONEBRICK 0x81b
#define CONTENT_STONEBLOCK 0x81c
#define CONTENT_SAPLING 0x820
// paintings
#define CONTENT_PAINTING_RED 0x821
#define CONTENT_PAINTING_BLUE 0x822
#define CONTENT_PAINTING_GREEN 0x823
#define CONTENT_PAINTING_CANVAS 0x824
#define CONTENT_PAINTING_WHITE 0x825

// FREE 826-82E
#define CONTENT_PARCEL 0x82F
#define CONTENT_CLOCK 0x830
// FREE 931-835

#define CONTENT_COUCH_CENTRE 0x836
#define CONTENT_COUCH_ENDL 0x837
#define CONTENT_COUCH_ENDR 0x838
#define CONTENT_COUCH_INNER 0x839
#define CONTENT_COUCH_OUTER 0x83A
#define CONTENT_COUCH_CHAIR 0x83B
#define CONTENT_COUCH_CENTRE_BLUE 0x83C
#define CONTENT_COUCH_ENDL_BLUE 0x83D
#define CONTENT_COUCH_ENDR_BLUE 0x83E
#define CONTENT_COUCH_INNER_BLUE 0x83F
#define CONTENT_COUCH_OUTER_BLUE 0x840
#define CONTENT_COUCH_CHAIR_BLUE 0x841
#define CONTENT_COUCH_CENTRE_GREEN 0x842
#define CONTENT_COUCH_ENDL_GREEN 0x843
#define CONTENT_COUCH_ENDR_GREEN 0x844
#define CONTENT_COUCH_INNER_GREEN 0x845
#define CONTENT_COUCH_OUTER_GREEN 0x846
#define CONTENT_COUCH_CHAIR_GREEN 0x847
#define CONTENT_COUCH_CENTRE_ORANGE 0x848
#define CONTENT_COUCH_ENDL_ORANGE 0x849
#define CONTENT_COUCH_ENDR_ORANGE 0x84A
#define CONTENT_COUCH_INNER_ORANGE 0x84B
#define CONTENT_COUCH_OUTER_ORANGE 0x84C
#define CONTENT_COUCH_CHAIR_ORANGE 0x84D
#define CONTENT_COUCH_CENTRE_PURPLE 0x84E
#define CONTENT_COUCH_ENDL_PURPLE 0x84F
#define CONTENT_COUCH_ENDR_PURPLE 0x850
#define CONTENT_COUCH_INNER_PURPLE 0x851
#define CONTENT_COUCH_OUTER_PURPLE 0x852
#define CONTENT_COUCH_CHAIR_PURPLE 0x853
#define CONTENT_COUCH_CENTRE_RED 0x854
#define CONTENT_COUCH_ENDL_RED 0x855
#define CONTENT_COUCH_ENDR_RED 0x856
#define CONTENT_COUCH_INNER_RED 0x857
#define CONTENT_COUCH_OUTER_RED 0x858
#define CONTENT_COUCH_CHAIR_RED 0x859
#define CONTENT_COUCH_CENTRE_YELLOW 0x85A
#define CONTENT_COUCH_ENDL_YELLOW 0x85B
#define CONTENT_COUCH_ENDR_YELLOW 0x85C
#define CONTENT_COUCH_INNER_YELLOW 0x85D
#define CONTENT_COUCH_OUTER_YELLOW 0x85E
#define CONTENT_COUCH_CHAIR_YELLOW 0x85F
#define CONTENT_COUCH_CENTRE_BLACK 0x860
#define CONTENT_COUCH_ENDL_BLACK 0x861
#define CONTENT_COUCH_ENDR_BLACK 0x862
#define CONTENT_COUCH_INNER_BLACK 0x863
#define CONTENT_COUCH_OUTER_BLACK 0x864
#define CONTENT_COUCH_CHAIR_BLACK 0x865
#define CONTENT_CAULDRON 0x866
// FREE 867-87F
#define CONTENT_FLAG 0x870
#define CONTENT_FLAG_BLUE 0x871
#define CONTENT_FLAG_GREEN 0x872
#define CONTENT_FLAG_ORANGE 0x873
#define CONTENT_FLAG_PURPLE 0x874
#define CONTENT_FLAG_RED 0x875
#define CONTENT_FLAG_YELLOW 0x876
#define CONTENT_FLAG_BLACK 0x877

// plants
#define CONTENT_WILDGRASS_SHORT 0x880
#define CONTENT_WILDGRASS_LONG 0x881
#define CONTENT_DEADGRASS 0x882
#define CONTENT_FLOWER_STEM 0x883
#define CONTENT_FLOWER_ROSE 0x884
#define CONTENT_FLOWER_DAFFODIL 0x885
#define CONTENT_FLOWER_TULIP 0x886
#define CONTENT_FLOWER_POT_RAW 0x887
#define CONTENT_FLOWER_POT 0x888
#define CONTENT_TRIMMED_LEAVES 0x889
#define CONTENT_PLANTS_MIN 0x880
#define CONTENT_PLANTS_MAX 0x886

// coloured cotton
#define CONTENT_COTTON_BLUE 0x890
#define CONTENT_COTTON_GREEN 0x891
#define CONTENT_COTTON_ORANGE 0x892
#define CONTENT_COTTON_PURPLE 0x893
#define CONTENT_COTTON_RED 0x894
#define CONTENT_COTTON_YELLOW 0x895
#define CONTENT_COTTON_BLACK 0x896
// old walls
// deprecated, just here for backwards compat
#define CONTENT_ROUGHSTONE_WALL_LEGACY 0x89A
#define CONTENT_MOSSYCOBBLE_WALL_LEGACY 0x89B
#define CONTENT_SANDSTONE_WALL_LEGACY 0x89C
#define CONTENT_STONE_WALL_LEGACY 0x89D
#define CONTENT_COBBLE_WALL_LEGACY 0x89E
// sponge
#define CONTENT_SPONGE 0x8A0
#define CONTENT_SPONGE_FULL 0x8A1
// more
#define CONTENT_HAY 0x8A2
#define CONTENT_SANDSTONE_BRICK 0x8A3
#define CONTENT_SANDSTONE_BLOCK 0x8A4
#define CONTENT_TERRACOTTA 0x8A5
#define CONTENT_TERRACOTTA_BRICK 0x8A6
#define CONTENT_TERRACOTTA_BLOCK 0x8A7
#define CONTENT_TERRACOTTA_TILE 0x8A8
#define CONTENT_CLAY_BLUE 0x8A9
#define CONTENT_CLAY_GREEN 0x8AA
#define CONTENT_CLAY_ORANGE 0x8AB
#define CONTENT_CLAY_PURPLE 0x8AC
#define CONTENT_CLAY_RED 0x8AD
#define CONTENT_CLAY_YELLOW 0x8AE
#define CONTENT_CLAY_BLACK 0x8AF
#define CONTENT_GLASS_BLUE 0x8B0
#define CONTENT_GLASS_GREEN 0x8B1
#define CONTENT_GLASS_ORANGE 0x8B2
#define CONTENT_GLASS_PURPLE 0x8B3
#define CONTENT_GLASS_RED 0x8B4
#define CONTENT_GLASS_YELLOW 0x8B5
#define CONTENT_GLASS_BLACK 0x8B6
#define CONTENT_CARPET 0x8B7
#define CONTENT_CARPET_BLUE 0x8B8
#define CONTENT_CARPET_GREEN 0x8B9
#define CONTENT_CARPET_ORANGE 0x8BA
#define CONTENT_CARPET_PURPLE 0x8BB
#define CONTENT_CARPET_RED 0x8BC
#define CONTENT_CARPET_YELLOW 0x8BD
#define CONTENT_CARPET_BLACK 0x8BE
#define CONTENT_COAL 0x8BF
#define CONTENT_CHARCOAL 0x8C0
#define CONTENT_TIN 0x8C1
#define CONTENT_COPPER 0x8C2
#define CONTENT_SILVER 0x8C3
#define CONTENT_GOLD 0x8C4
#define CONTENT_QUARTZ 0x8C5
// fire and tnt
#define CONTENT_FIRE 0x8C6
#define CONTENT_FIRE_SHORTTERM 0x8C7
#define CONTENT_TNT 0x8C8
#define CONTENT_FLASH 0x8C9
#define CONTENT_MESE_DIGGING 0x8CA
#define CONTENT_COBBLE 0x8CB
#define CONTENT_ROUGHSTONEBRICK 0x8CC
#define CONTENT_ROUGHSTONEBLOCK 0x8CD
#define CONTENT_STEAM 0x8CE
#define CONTENT_INCINERATOR 0x8CF
#define CONTENT_ASH 0x8D0
#define CONTENT_GRASS_FOOTSTEPS 0x8D1
#define CONTENT_TRELLIS 0x8D2
// books
#define CONTENT_BOOK 0x8D3
#define CONTENT_COOK_BOOK 0x8D4
#define CONTENT_DECRAFT_BOOK 0x8D5
#define CONTENT_DIARY_BOOK 0x8D6
// FREE 8D7-8D9
#define CONTENT_BOOK_OPEN 0x8DA
#define CONTENT_COOK_BOOK_OPEN 0x8DB
#define CONTENT_DECRAFT_BOOK_OPEN 0x8DC
#define CONTENT_DIARY_BOOK_OPEN 0x8DD
// FREE 8D3-8DF
#define CONTENT_YOUNG_TREE 0x8F0
#define CONTENT_YOUNG_JUNGLETREE 0x8F1
#define CONTENT_YOUNG_APPLE_TREE 0x8F2
#define CONTENT_YOUNG_CONIFER_TREE 0x8F3
// FREE 8F4-8FF
// glass pane
#define CONTENT_GLASS_PANE 0x900
#define CONTENT_GLASS_PANE_BLUE 0x901
#define CONTENT_GLASS_PANE_GREEN 0x902
#define CONTENT_GLASS_PANE_ORANGE 0x903
#define CONTENT_GLASS_PANE_PURPLE 0x904
#define CONTENT_GLASS_PANE_RED 0x905
#define CONTENT_GLASS_PANE_YELLOW 0x906
#define CONTENT_GLASS_PANE_BLACK 0x907
// more more
#define CONTENT_JUNGLELEAVES 0x910
#define CONTENT_JUNGLESAPLING 0x911
#define CONTENT_APPLE_LEAVES 0x912
#define CONTENT_APPLE_SAPLING 0x913
#define CONTENT_APPLE_TREE 0x914
#define CONTENT_TRIMMED_APPLE_LEAVES 0x915
#define CONTENT_TRIMMED_JUNGLE_LEAVES 0x916
#define CONTENT_TRIMMED_CONIFER_LEAVES 0x917
#define CONTENT_APPLE_BLOSSOM 0x918
#define CONTENT_TRIMMED_APPLE_BLOSSOM 0x919
#define CONTENT_CACTUS_BLOSSOM 0x91A
#define CONTENT_CACTUS_FLOWER 0x91B
#define CONTENT_CACTUS_FRUIT 0x91C
#define CONTENT_FERTILIZER 0x91D
#define CONTENT_SEEDS_WHEAT 0x91E
#define CONTENT_SEEDS_MELON 0x91F
#define CONTENT_SEEDS_PUMPKIN 0x920
#define CONTENT_SEEDS_POTATO 0x921
#define CONTENT_SEEDS_CARROT 0x922
#define CONTENT_SEEDS_BEETROOT 0x923
#define CONTENT_SEEDS_GRAPE 0x924
#define CONTENT_SEEDS_COTTON 0x925
// FREE 925-930
#define CONTENT_FARM_WHEAT_1 0x930
#define CONTENT_FARM_WHEAT_2 0x931
#define CONTENT_FARM_WHEAT_3 0x932
#define CONTENT_FARM_WHEAT 0x933
#define CONTENT_FARM_MELON_1 0x934
#define CONTENT_FARM_MELON_2 0x935
#define CONTENT_FARM_MELON_3 0x936
#define CONTENT_FARM_MELON 0x937
#define CONTENT_FARM_PUMPKIN_1 0x938
#define CONTENT_FARM_PUMPKIN_2 0x939
#define CONTENT_FARM_PUMPKIN_3 0x93A
#define CONTENT_FARM_PUMPKIN 0x93B
#define CONTENT_FARM_POTATO_1 0x93C
#define CONTENT_FARM_POTATO_2 0x93D
#define CONTENT_FARM_POTATO_3 0x93E
#define CONTENT_FARM_POTATO 0x93F
#define CONTENT_FARM_CARROT_1 0x940
#define CONTENT_FARM_CARROT_2 0x941
#define CONTENT_FARM_CARROT_3 0x942
#define CONTENT_FARM_CARROT 0x943
#define CONTENT_FARM_BEETROOT_1 0x944
#define CONTENT_FARM_BEETROOT_2 0x945
#define CONTENT_FARM_BEETROOT_3 0x946
#define CONTENT_FARM_BEETROOT 0x947
#define CONTENT_FARM_GRAPEVINE_1 0x948
#define CONTENT_FARM_GRAPEVINE_2 0x949
#define CONTENT_FARM_GRAPEVINE_3 0x94A
#define CONTENT_FARM_GRAPEVINE 0x94B
#define CONTENT_FARM_COTTON_1 0x94C
#define CONTENT_FARM_COTTON_2 0x94D
#define CONTENT_FARM_COTTON_3 0x94E
#define CONTENT_FARM_COTTON 0x94F
#define CONTENT_FARM_TRELLIS_GRAPE_1 0x950
#define CONTENT_FARM_TRELLIS_GRAPE_2 0x951
#define CONTENT_FARM_TRELLIS_GRAPE_3 0x952
#define CONTENT_FARM_TRELLIS_GRAPE 0x953
#define CONTENT_APPLE_PIE_RAW 0x954
#define CONTENT_APPLE_PIE 0x955
#define CONTENT_APPLE_PIE_3 0x956
#define CONTENT_APPLE_PIE_2 0x957
#define CONTENT_APPLE_PIE_1 0x958
#define CONTENT_PUMPKIN_PIE_RAW 0x959
#define CONTENT_PUMPKIN_PIE 0x95A
#define CONTENT_PUMPKIN_PIE_3 0x95B
#define CONTENT_PUMPKIN_PIE_2 0x95C
#define CONTENT_PUMPKIN_PIE_1 0x95D
#define CONTENT_SEEDS_TEA 0x95E
#define CONTENT_TEA 0x95F
#define CONTENT_BEANS_COFFEE 0x960
#define CONTENT_COFFEE 0x961
// FREE 962-9FA
#define CONTENT_DEAD_VINE 0x9FB
#define CONTENT_TRELLIS_DEAD_VINE 0x9FC
#define CONTENT_FARM_PUMPKIN_JACK 0x9FD
// books
#define CONTENT_CRAFT_BOOK 0x9FE
#define CONTENT_CRAFT_BOOK_OPEN 0x9FF

// slabs
#define CONTENT_ROUGHSTONE_SLAB 0xA00
#define CONTENT_MOSSYCOBBLE_SLAB 0xA01
#define CONTENT_STONE_SLAB 0xA02
#define CONTENT_WOOD_SLAB 0xA03
#define CONTENT_JUNGLE_SLAB 0xA04
#define CONTENT_BRICK_SLAB 0xA05
#define CONTENT_SANDSTONE_SLAB 0xA06
#define CONTENT_COBBLE_SLAB 0xA07
#define CONTENT_GLASS_SLAB 0xA08
#define CONTENT_GLASS_BLUE_SLAB 0xA09
#define CONTENT_GLASS_GREEN_SLAB 0xA0A
#define CONTENT_GLASS_ORANGE_SLAB 0xA0B
#define CONTENT_GLASS_PURPLE_SLAB 0xA0C
#define CONTENT_GLASS_RED_SLAB 0xA0D
#define CONTENT_GLASS_YELLOW_SLAB 0xA0E
#define CONTENT_GLASS_BLACK_SLAB 0xA0F
// stairs
#define CONTENT_ROUGHSTONE_STAIR 0xA20
#define CONTENT_MOSSYCOBBLE_STAIR 0xA21
#define CONTENT_STONE_STAIR 0xA22
#define CONTENT_WOOD_STAIR 0xA23
#define CONTENT_JUNGLE_STAIR 0xA24
#define CONTENT_BRICK_STAIR 0xA25
#define CONTENT_SANDSTONE_STAIR 0xA26
#define CONTENT_COBBLE_STAIR 0xA27
// upside down slabs
#define CONTENT_ROUGHSTONE_SLAB_UD 0xA40
#define CONTENT_MOSSYCOBBLE_SLAB_UD 0xA41
#define CONTENT_STONE_SLAB_UD 0xA42
#define CONTENT_WOOD_SLAB_UD 0xA43
#define CONTENT_JUNGLE_SLAB_UD 0xA44
#define CONTENT_BRICK_SLAB_UD 0xA45
#define CONTENT_SANDSTONE_SLAB_UD 0xA46
#define CONTENT_COBBLE_SLAB_UD 0xA47
#define CONTENT_GLASS_SLAB_UD 0xA48
#define CONTENT_GLASS_BLUE_SLAB_UD 0xA49
#define CONTENT_GLASS_GREEN_SLAB_UD 0xA4A
#define CONTENT_GLASS_ORANGE_SLAB_UD 0xA4B
#define CONTENT_GLASS_PURPLE_SLAB_UD 0xA4C
#define CONTENT_GLASS_RED_SLAB_UD 0xA4D
#define CONTENT_GLASS_YELLOW_SLAB_UD 0xA4E
#define CONTENT_GLASS_BLACK_SLAB_UD 0xA4F
// upside down stairs
#define CONTENT_ROUGHSTONE_STAIR_UD 0xA60
#define CONTENT_MOSSYCOBBLE_STAIR_UD 0xA61
#define CONTENT_STONE_STAIR_UD 0xA62
#define CONTENT_WOOD_STAIR_UD 0xA63
#define CONTENT_JUNGLE_STAIR_UD 0xA64
#define CONTENT_BRICK_STAIR_UD 0xA65
#define CONTENT_SANDSTONE_STAIR_UD 0xA66
#define CONTENT_COBBLE_STAIR_UD 0xA67
// slab/stair masks
#define CONTENT_SLAB_STAIR_MIN 0xA00
#define CONTENT_SLAB_STAIR_MAX 0xA6F
#define CONTENT_SLAB_STAIR_FLIP 0x040
#define CONTENT_SLAB_STAIR_UD_MIN 0xA40
#define CONTENT_SLAB_STAIR_UD_MAX 0xA6F
// roof tiles
#define CONTENT_ROOFTILE_TERRACOTTA 0xA70
#define CONTENT_ROOFTILE_WOOD 0xA71
#define CONTENT_ROOFTILE_ASPHALT 0xA72
#define CONTENT_ROOFTILE_STONE 0xA73
#define CONTENT_ROOFTILE_GLASS 0xA74
#define CONTENT_ROOFTILE_GLASS_BLUE 0xA75
#define CONTENT_ROOFTILE_GLASS_GREEN 0xA76
#define CONTENT_ROOFTILE_GLASS_ORANGE 0xA77
#define CONTENT_ROOFTILE_GLASS_PURPLE 0xA78
#define CONTENT_ROOFTILE_GLASS_RED 0xA79
#define CONTENT_ROOFTILE_GLASS_YELLOW 0xA7A
#define CONTENT_ROOFTILE_GLASS_BLACK 0xA7B
#define CONTENT_ROOFTILE_THATCH 0xA7C
// FREE A7D-AFF
// doors
#define CONTENT_WOOD_DOOR_LB 0xB00
#define CONTENT_WOOD_DOOR_LT 0xB01
#define CONTENT_STEEL_DOOR_LB 0xB02
#define CONTENT_STEEL_DOOR_LT 0xB03
#define CONTENT_GLASS_DOOR_LB 0xB04
#define CONTENT_GLASS_DOOR_LT 0xB05
// windowed doors
#define CONTENT_WOOD_W_DOOR_LB 0xB10
#define CONTENT_WOOD_W_DOOR_LT 0xB11
#define CONTENT_STEEL_W_DOOR_LB 0xB12
#define CONTENT_STEEL_W_DOOR_LT 0xB13
// right doors
#define CONTENT_WOOD_DOOR_RB 0xB20
#define CONTENT_WOOD_DOOR_RT 0xB21
#define CONTENT_STEEL_DOOR_RB 0xB22
#define CONTENT_STEEL_DOOR_RT 0xB23
#define CONTENT_GLASS_DOOR_RB 0xB24
#define CONTENT_GLASS_DOOR_RT 0xB25
// right windowed doors
#define CONTENT_WOOD_W_DOOR_RB 0xB30
#define CONTENT_WOOD_W_DOOR_RT 0xB31
#define CONTENT_STEEL_W_DOOR_RB 0xB32
#define CONTENT_STEEL_W_DOOR_RT 0xB33
// hatches
#define CONTENT_WOOD_HATCH 0xB40
#define CONTENT_STEEL_HATCH 0xB42
#define CONTENT_WOOD_W_HATCH 0xB44
#define CONTENT_STEEL_W_HATCH 0xB46
// gates
#define CONTENT_WOOD_GATE 0xB60
#define CONTENT_STEEL_GATE 0xB62

// open doors
#define CONTENT_WOOD_DOOR_LB_OPEN 0xB80
#define CONTENT_WOOD_DOOR_LT_OPEN 0xB81
#define CONTENT_STEEL_DOOR_LB_OPEN 0xB82
#define CONTENT_STEEL_DOOR_LT_OPEN 0xB83
#define CONTENT_GLASS_DOOR_LB_OPEN 0xB84
#define CONTENT_GLASS_DOOR_LT_OPEN 0xB85
// open windowed doors
#define CONTENT_WOOD_W_DOOR_LB_OPEN 0xB90
#define CONTENT_WOOD_W_DOOR_LT_OPEN 0xB91
#define CONTENT_STEEL_W_DOOR_LB_OPEN 0xB92
#define CONTENT_STEEL_W_DOOR_LT_OPEN 0xB93
// open right doors
#define CONTENT_WOOD_DOOR_RB_OPEN 0xBA0
#define CONTENT_WOOD_DOOR_RT_OPEN 0xBA1
#define CONTENT_STEEL_DOOR_RB_OPEN 0xBA2
#define CONTENT_STEEL_DOOR_RT_OPEN 0xBA3
#define CONTENT_GLASS_DOOR_RB_OPEN 0xBA4
#define CONTENT_GLASS_DOOR_RT_OPEN 0xBA5
// open right windowed doors
#define CONTENT_WOOD_W_DOOR_RB_OPEN 0xBB0
#define CONTENT_WOOD_W_DOOR_RT_OPEN 0xBB1
#define CONTENT_STEEL_W_DOOR_RB_OPEN 0xBB2
#define CONTENT_STEEL_W_DOOR_RT_OPEN 0xBB3
// open hatches
#define CONTENT_WOOD_HATCH_OPEN 0xBC0
#define CONTENT_STEEL_HATCH_OPEN 0xBC2
#define CONTENT_WOOD_W_HATCH_OPEN 0xBC4
#define CONTENT_STEEL_W_HATCH_OPEN 0xBC6
// open gates
#define CONTENT_WOOD_GATE_OPEN 0xBE0
#define CONTENT_STEEL_GATE_OPEN 0xBE2
// door/hatch/gate masks
#define CONTENT_DOOR_MIN 0xB00
#define CONTENT_DOOR_MAX 0xBFF
#define CONTENT_DOOR_STEEL_MASK 0x002
#define CONTENT_DOOR_SECT_MASK 0x001
#define CONTENT_DOOR_OPEN_MASK 0x080
#define CONTENT_HATCH_MASK 0x040

#define CONTENT_SNOWMAN 0xC00
#define CONTENT_SNOW 0xC01
#define CONTENT_MUDSNOW 0xC02
#define CONTENT_SNOW_BLOCK 0xC03
#define CONTENT_ICE 0xC04
#define CONTENT_CONIFER_LEAVES 0xC06
#define CONTENT_CONIFER_SAPLING 0xC07
#define CONTENT_WOOD_PINE 0xC08
#define CONTENT_CONIFER_TREE 0xC09
#define CONTENT_LIFE_SUPPORT 0xC0A
#define CONTENT_INCINERATOR_ACTIVE 0xC0B
#define CONTENT_STONE_TILE 0xC0C
#define CONTENT_WOOD_TILE 0xC0D
// FREE C0E-C0F
// beds
#define CONTENT_BED_HEAD 0xC10
#define CONTENT_BED_FOOT 0xC11
#define CONTENT_BED_BLUE_HEAD 0xC12
#define CONTENT_BED_BLUE_FOOT 0xC13
#define CONTENT_BED_GREEN_HEAD 0xC14
#define CONTENT_BED_GREEN_FOOT 0xC15
#define CONTENT_BED_ORANGE_HEAD 0xC16
#define CONTENT_BED_ORANGE_FOOT 0xC17
#define CONTENT_BED_PURPLE_HEAD 0xC18
#define CONTENT_BED_PURPLE_FOOT 0xC19
#define CONTENT_BED_RED_HEAD 0xC1A
#define CONTENT_BED_RED_FOOT 0xC1B
#define CONTENT_BED_YELLOW_HEAD 0xC1C
#define CONTENT_BED_YELLOW_FOOT 0xC1D
#define CONTENT_BED_BLACK_HEAD 0xC1E
#define CONTENT_BED_BLACK_FOOT 0xC1F
#define CONTENT_BED_MIN 0xC10
#define CONTENT_BED_MAX 0xC1F
#define CONTENT_BED_FOOT_MASK 0x001

// FREE C25-CFF

// D00-DFF - play space for other devs and experiments
#define CONTENT_STONE_KNOB 0xD00
#define CONTENT_ROUGHSTONE_KNOB 0xD01
#define CONTENT_COBBLE_KNOB 0xD02
#define CONTENT_SANDSTONE_KNOB 0xD03
#define CONTENT_WOOD_KNOB 0xD04
#define CONTENT_PINE_KNOB 0xD05
#define CONTENT_JUNGLEWOOD_KNOB 0xD06

// FREE E00-EFF

// circuits
// circuits - wire
#define CONTENT_CIRCUIT_MESEWIRE 0xF00
#define CONTENT_CIRCUIT_COPPERWIRE 0xF01
// circuits - powersource
#define CONTENT_CIRCUIT_REACTOR 0xF20
#define CONTENT_CIRCUIT_SOLARPANEL 0xF21
#define CONTENT_CIRCUIT_WATERWHEEL 0xF22
#define CONTENT_CIRCUIT_SWITCH 0xF23
#define CONTENT_CIRCUIT_NOTGATE 0xF24
#define CONTENT_CIRCUIT_BUTTON 0xF25
#define CONTENT_CIRCUIT_PRESSUREPLATE_WOOD 0xF26
#define CONTENT_CIRCUIT_PRESSUREPLATE_STONE 0xF27
#define CONTENT_CIRCUIT_REPEATER 0xF28
// circuits - gadgets
#define CONTENT_CIRCUIT_LAMP 0xF40
#define CONTENT_CIRCUIT_LAMP_OFF 0xF41
#define CONTENT_CIRCUIT_PISTON 0xF42
#define CONTENT_CIRCUIT_PISTON_OFF 0xF43
#define CONTENT_CIRCUIT_PISTON_ARM 0xF44
#define CONTENT_CIRCUIT_PISTON_UP 0xF45
#define CONTENT_CIRCUIT_PISTON_UP_OFF 0xF46
#define CONTENT_CIRCUIT_PISTON_UP_ARM 0xF47
#define CONTENT_CIRCUIT_PISTON_DOWN 0xF48
#define CONTENT_CIRCUIT_PISTON_DOWN_OFF 0xF49
#define CONTENT_CIRCUIT_PISTON_DOWN_ARM 0xF4A
#define CONTENT_CIRCUIT_STICKYPISTON 0xF4B
#define CONTENT_CIRCUIT_STICKYPISTON_OFF 0xF4C
#define CONTENT_CIRCUIT_STICKYPISTON_ARM 0xF4D
#define CONTENT_CIRCUIT_STICKYPISTON_UP 0xF4E
#define CONTENT_CIRCUIT_STICKYPISTON_UP_OFF 0xF4F
#define CONTENT_CIRCUIT_STICKYPISTON_UP_ARM 0xF50
#define CONTENT_CIRCUIT_STICKYPISTON_DOWN 0xF52
#define CONTENT_CIRCUIT_STICKYPISTON_DOWN_OFF 0xF53
#define CONTENT_CIRCUIT_STICKYPISTON_DOWN_ARM 0xF54
// circuits - MASKs
#define CONTENT_CIRCUIT_MIN 0xF00
#define CONTENT_CIRCUIT_MAX 0xFFF

#endif

