Added a plugin that starts up and shuts down protobufs. Will add actual map export functionality to it tomorrow.

develop
Mike Stewart 2012-01-19 22:15:51 -08:00
parent 1e59811e65
commit fb41e457c4
4 changed files with 95 additions and 0 deletions

@ -35,6 +35,11 @@ if(BUILD_DF2MC)
add_subdirectory (df2mc) add_subdirectory (df2mc)
endif() endif()
OPTION(BUILD_MAPEXPORT "Build map exporter." ON)
if (BUILD_MAPEXPORT)
add_subdirectory (mapexport)
endif()
DFHACK_PLUGIN(reveal reveal.cpp) DFHACK_PLUGIN(reveal reveal.cpp)
DFHACK_PLUGIN(probe probe.cpp) DFHACK_PLUGIN(probe probe.cpp)

@ -0,0 +1,35 @@
PROJECT(mapexport)
SET(MAPEXPORT_SOURCE_DIR ${dfhack_SOURCE_DIR}/plugins/mapexport)
include_directories (
${CMAKE_CURRENT_BINARY_DIR}
${dfhack_SOURCE_DIR}/library/depends/protobuf/
)
#Generated protobuf files and the headers they will require
SET(PROJECT_HDRS
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/stubs/once.h
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/stubs/common.h
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/io/coded_stream.h
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/wire_format_lite_inl.h
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/generated_message_util.h
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/repeated_field.h
${dfhack_SOURCE_DIR}/library/depends/protobuf/google/protobuf/extension_set.h
proto/Tile.pb.h
)
SET(PROJECT_SRCS
mapexport.cpp
proto/Tile.pb.cc
)
SET_SOURCE_FILES_PROPERTIES( ${PROJECT_HDRS} PROPERTIES HEADER_FILE_ONLY TRUE)
LIST(APPEND PROJECT_SRCS ${PROJECT_HDRS})
ADD_CUSTOM_COMMAND(
OUTPUT proto/Tile.pb.cc proto/Tile.pb.h
COMMAND protoc -I=${CMAKE_CURRENT_SOURCE_DIR}/proto --cpp_out=proto ${CMAKE_CURRENT_SOURCE_DIR}/proto/Tile.proto
DEPENDS protoc ${CMAKE_CURRENT_SOURCE_DIR}/proto/Tile.proto
)
DFHACK_PLUGIN(mapexport ${PROJECT_SRCS} ${PROJECT_HDRS} LINK_LIBRARIES libprotobuf-lite)

@ -0,0 +1,45 @@
#include "Core.h"
#include <Console.h>
#include <Export.h>
#include <PluginManager.h>
#include "proto/Tile.pb.h"
using namespace DFHack;
DFhackCExport command_result mapexport (Core * c, std::vector <std::string> & parameters);
DFhackCExport const char * plugin_name ( void )
{
return "mapexport";
}
DFhackCExport command_result plugin_init ( Core * c, std::vector <PluginCommand> &commands)
{
GOOGLE_PROTOBUF_VERIFY_VERSION;
commands.clear();
commands.push_back(PluginCommand("mapexport", "Starts up and shuts down protobufs.", mapexport, true));
return CR_OK;
}
DFhackCExport command_result plugin_shutdown ( Core * c )
{
google::protobuf::ShutdownProtobufLibrary();
return CR_OK;
}
DFhackCExport command_result mapexport (Core * c, std::vector <std::string> & parameters)
{
for(int i = 0; i < parameters.size();i++)
{
if(parameters[i] == "help" || parameters[i] == "?")
{
c->con.print("This doesn't do anything at all yet.\n");
return CR_OK;
}
}
c->Suspend();
dfproto::Tile tile;
c->con.print("Hold on, I'm working on it!\n");
c->Resume();
return CR_OK;
}

@ -0,0 +1,10 @@
package dfproto;
option optimize_for = LITE_RUNTIME;
message Tile
{
required uint32 x = 1;
required uint32 y = 2;
required uint32 tiletype = 3;
optional uint32 material = 4;
}