Added a plugin that starts up and shuts down protobufs. Will add actual map export functionality to it tomorrow.
parent
1e59811e65
commit
fb41e457c4
@ -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;
|
||||||
|
}
|
Loading…
Reference in New Issue