Merge remote-tracking branch 'origin/master'

develop
Mike Stewart 2012-01-31 08:42:41 -08:00
commit 3816bd7789
2 changed files with 53 additions and 3 deletions

@ -161,6 +161,33 @@ DFhackCExport command_result mapexport (Core * c, std::vector <std::string> & pa
uint16_t type = b->TileTypeAt(coord); uint16_t type = b->TileTypeAt(coord);
const DFHack::TileRow *info = DFHack::getTileRow(type); const DFHack::TileRow *info = DFHack::getTileRow(type);
prototile->set_type((dfproto::Tile::TileType)info->shape); prototile->set_type((dfproto::Tile::TileType)info->shape);
prototile->set_material_type((dfproto::Tile::MaterialType)info->material);
switch (info->material)
{
case DFHack::SOIL:
case DFHack::STONE:
prototile->set_material(b->baseMaterialAt(coord));
break;
case DFHack::VEIN:
prototile->set_material(b->veinMaterialAt(coord));
break;
case DFHack::FEATSTONE:
if (blockFeatureLocal.type != -1 && des.bits.feature_local)
{
if (blockFeatureLocal.type == df::feature_type::deep_special_tube
&& blockFeatureLocal.main_material == 0) // stone
{
prototile->set_material(blockFeatureLocal.sub_material);
}
if (blockFeatureGlobal.type != -1 && des.bits.feature_global
&& blockFeatureGlobal.type == df::feature_type::feature_underworld_from_layer
&& blockFeatureGlobal.main_material == 0) // stone
{
prototile->set_material(blockFeatureGlobal.sub_material);
}
}
}
} }
} }
coded_output->WriteVarint32(protoblock.ByteSize()); coded_output->WriteVarint32(protoblock.ByteSize());

@ -34,10 +34,33 @@ message Tile
WATER = 0; WATER = 0;
MAGMA = 1; MAGMA = 1;
} }
enum MaterialType
{
AIR = 0;
SOIL = 1;
STONE = 2;
FEATSTONE = 3;
OBSIDIAN = 4;
VEIN = 5;
ICE = 6;
GRASS = 7;
GRASS2 = 8;
GRASS_DEAD = 9;
GRASS_DRY = 10;
DRIFTWOOD = 11;
HFS = 12;
MAGMA_TYPE = 13;
CAMPFIRE = 14;
FIRE = 15;
ASHES = 16;
CONSTRUCTED = 17;
CYAN_GLOW = 18;
}
required uint32 x = 1; required uint32 x = 1;
required uint32 y = 2; required uint32 y = 2;
required TileType type = 3; required TileType type = 3;
optional uint32 material = 4; optional MaterialType material_type = 4;
optional LiquidType liquid_type = 5; optional uint32 material = 5;
optional uint32 flow_size = 6; optional LiquidType liquid_type = 6;
optional uint32 flow_size = 7;
} }