package isoworldremote;

//Describes a very basic material structure for the map embark
option optimize_for = LITE_RUNTIME;

enum BasicMaterial {
	AIR = 0;
	OTHER = 1;
	INORGANIC = 2;
	LIQUID = 3;
	PLANT = 4;
	WOOD = 5;
};

enum LiquidType {
	ICE = 0;
	WATER = 1;
	MAGMA = 2;
}

message EmbarkTileLayer {
	repeated BasicMaterial mat_type_table = 4 [packed=true];
	repeated int32 mat_subtype_table = 5 [packed=true];
}

message EmbarkTile {
	required int32 world_x = 1;
	required int32 world_y = 2;
	required sint32 world_z = 3;
	repeated EmbarkTileLayer tile_layer = 4;
	optional int32 current_year = 5;
	optional int32 current_season = 6;
	optional bool is_valid = 7;
}

message TileRequest {
	optional int32 want_x = 1;
	optional int32 want_y = 2;
}

message MapRequest {
	optional string save_folder = 1;
}

message MapReply {
	required bool available = 1;
	optional int32 region_x = 2;
	optional int32 region_y = 3;
	optional int32 region_size_x = 4;
	optional int32 region_size_y = 5;
	optional int32 current_year = 6;
	optional int32 current_season = 7;
}

message RawNames {
	required bool available = 1;
	repeated string inorganic = 2;
	repeated string organic = 3;
}