forked from Mirrorlandia_minetest/minetest
ToolDefinition serialization
This commit is contained in:
parent
e9620d9c8c
commit
8d2d28f1dc
@ -20,7 +20,65 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#include "tooldef.h"
|
#include "tooldef.h"
|
||||||
#include "irrlichttypes.h"
|
#include "irrlichttypes.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include <ostream>
|
#include <sstream>
|
||||||
|
#include "utility.h"
|
||||||
|
|
||||||
|
ToolDiggingProperties::ToolDiggingProperties(
|
||||||
|
float a, float b, float c, float d, float e,
|
||||||
|
float f, float g, float h, float i, float j):
|
||||||
|
basetime(a),
|
||||||
|
dt_weight(b),
|
||||||
|
dt_crackiness(c),
|
||||||
|
dt_crumbliness(d),
|
||||||
|
dt_cuttability(e),
|
||||||
|
basedurability(f),
|
||||||
|
dd_weight(g),
|
||||||
|
dd_crackiness(h),
|
||||||
|
dd_crumbliness(i),
|
||||||
|
dd_cuttability(j)
|
||||||
|
{}
|
||||||
|
|
||||||
|
std::string ToolDefinition::dump()
|
||||||
|
{
|
||||||
|
std::ostringstream os(std::ios::binary);
|
||||||
|
os<<"[ToolDefinition::dump() not implemented due to lazyness]"
|
||||||
|
<<std::endl;
|
||||||
|
return os.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ToolDefinition::serialize(std::ostream &os)
|
||||||
|
{
|
||||||
|
writeU8(os, 0); // version
|
||||||
|
os<<serializeString(imagename);
|
||||||
|
writeF1000(os, properties.basetime);
|
||||||
|
writeF1000(os, properties.dt_weight);
|
||||||
|
writeF1000(os, properties.dt_crackiness);
|
||||||
|
writeF1000(os, properties.dt_crumbliness);
|
||||||
|
writeF1000(os, properties.dt_cuttability);
|
||||||
|
writeF1000(os, properties.basedurability);
|
||||||
|
writeF1000(os, properties.dd_weight);
|
||||||
|
writeF1000(os, properties.dd_crackiness);
|
||||||
|
writeF1000(os, properties.dd_crumbliness);
|
||||||
|
writeF1000(os, properties.dd_cuttability);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ToolDefinition::deSerialize(std::istream &is)
|
||||||
|
{
|
||||||
|
int version = readU8(is);
|
||||||
|
if(version != 0) throw SerializationError(
|
||||||
|
"unsupported ToolDiggingProperties version");
|
||||||
|
imagename = deSerializeString(is);
|
||||||
|
properties.basetime = readF1000(is);
|
||||||
|
properties.dt_weight = readF1000(is);
|
||||||
|
properties.dt_crackiness = readF1000(is);
|
||||||
|
properties.dt_crumbliness = readF1000(is);
|
||||||
|
properties.dt_cuttability = readF1000(is);
|
||||||
|
properties.basedurability = readF1000(is);
|
||||||
|
properties.dd_weight = readF1000(is);
|
||||||
|
properties.dd_crackiness = readF1000(is);
|
||||||
|
properties.dd_crumbliness = readF1000(is);
|
||||||
|
properties.dd_cuttability = readF1000(is);
|
||||||
|
}
|
||||||
|
|
||||||
class CToolDefManager: public IWritableToolDefManager
|
class CToolDefManager: public IWritableToolDefManager
|
||||||
{
|
{
|
||||||
|
@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
#define TOOLDEF_HEADER
|
#define TOOLDEF_HEADER
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO: Rename to tooldef.h
|
TODO: Rename to tooldef.h
|
||||||
@ -40,19 +41,9 @@ struct ToolDiggingProperties
|
|||||||
float dd_crumbliness;
|
float dd_crumbliness;
|
||||||
float dd_cuttability;
|
float dd_cuttability;
|
||||||
|
|
||||||
ToolDiggingProperties(float a=0.75, float b=0, float c=0, float d=0, float e=0,
|
ToolDiggingProperties(
|
||||||
float f=50, float g=0, float h=0, float i=0, float j=0):
|
float a=0.75, float b=0, float c=0, float d=0, float e=0,
|
||||||
basetime(a),
|
float f=50, float g=0, float h=0, float i=0, float j=0);
|
||||||
dt_weight(b),
|
|
||||||
dt_crackiness(c),
|
|
||||||
dt_crumbliness(d),
|
|
||||||
dt_cuttability(e),
|
|
||||||
basedurability(f),
|
|
||||||
dd_weight(g),
|
|
||||||
dd_crackiness(h),
|
|
||||||
dd_crumbliness(i),
|
|
||||||
dd_cuttability(j)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ToolDefinition
|
struct ToolDefinition
|
||||||
@ -66,6 +57,10 @@ struct ToolDefinition
|
|||||||
imagename(imagename_),
|
imagename(imagename_),
|
||||||
properties(properties_)
|
properties(properties_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
std::string dump();
|
||||||
|
void serialize(std::ostream &os);
|
||||||
|
void deSerialize(std::istream &is);
|
||||||
};
|
};
|
||||||
|
|
||||||
class IToolDefManager
|
class IToolDefManager
|
||||||
|
Loading…
Reference in New Issue
Block a user