Skip to content
Permalink
Browse files

Remove craftdef serialisation

It isn't needed anymore, sending ICraftDefManager over the network has been obsoleted
by protocol version 7.
  • Loading branch information...
est31 committed Apr 21, 2015
1 parent 4f851fa commit 27e3a353d84c974dfea113df0eaa0aa7e93b7c6b
Showing with 2 additions and 177 deletions.
  1. +0 −147 src/craftdef.cpp
  2. +2 −30 src/craftdef.h
@@ -322,63 +322,6 @@ std::string CraftReplacements::dump() const
return os.str();
}

void CraftReplacements::serialize(std::ostream &os) const
{
writeU16(os, pairs.size());
for (u32 i=0; i<pairs.size(); i++) {
os << serializeString(pairs[i].first);
os << serializeString(pairs[i].second);
}
}

void CraftReplacements::deSerialize(std::istream &is)
{
pairs.clear();
u32 count = readU16(is);
for (u32 i=0; i<count; i++) {
std::string first = deSerializeString(is);
std::string second = deSerializeString(is);
pairs.push_back(std::make_pair(first, second));
}
}

/*
CraftDefinition
*/

void CraftDefinition::serialize(std::ostream &os) const
{
writeU8(os, 1); // version
os << serializeString(getName());
serializeBody(os);
}

CraftDefinition* CraftDefinition::deSerialize(std::istream &is)
{
int version = readU8(is);
if (version != 1) throw SerializationError(
"unsupported CraftDefinition version");
std::string name = deSerializeString(is);
CraftDefinition *def = NULL;
if (name == "shaped") {
def = new CraftDefinitionShaped;
} else if (name == "shapeless") {
def = new CraftDefinitionShapeless;
} else if (name == "toolrepair") {
def = new CraftDefinitionToolRepair;
} else if (name == "cooking") {
def = new CraftDefinitionCooking;
} else if (name == "fuel") {
def = new CraftDefinitionFuel;
} else {
infostream << "Unknown CraftDefinition name=\""
<< name << '"' << std::endl;
throw SerializationError("Unknown CraftDefinition name");
}
def->deSerializeBody(is, version);
return def;
}

/*
CraftDefinitionShaped
*/
@@ -513,29 +456,6 @@ std::string CraftDefinitionShaped::dump() const
return os.str();
}

void CraftDefinitionShaped::serializeBody(std::ostream &os) const
{
os << serializeString(output);
writeU16(os, width);
writeU16(os, recipe.size());
for (u32 i=0; i<recipe.size(); i++)
os << serializeString(recipe[i]);
replacements.serialize(os);
}

void CraftDefinitionShaped::deSerializeBody(std::istream &is, int version)
{
if (version != 1) throw SerializationError(
"unsupported CraftDefinitionShaped version");
output = deSerializeString(is);
width = readU16(is);
recipe.clear();
u32 count = readU16(is);
for (u32 i=0; i<count; i++)
recipe.push_back(deSerializeString(is));
replacements.deSerialize(is);
}

/*
CraftDefinitionShapeless
*/
@@ -655,27 +575,6 @@ std::string CraftDefinitionShapeless::dump() const
return os.str();
}

void CraftDefinitionShapeless::serializeBody(std::ostream &os) const
{
os << serializeString(output);
writeU16(os, recipe.size());
for (u32 i=0; i<recipe.size(); i++)
os << serializeString(recipe[i]);
replacements.serialize(os);
}

void CraftDefinitionShapeless::deSerializeBody(std::istream &is, int version)
{
if (version != 1) throw SerializationError(
"unsupported CraftDefinitionShapeless version");
output = deSerializeString(is);
recipe.clear();
u32 count = readU16(is);
for (u32 i=0; i<count; i++)
recipe.push_back(deSerializeString(is));
replacements.deSerialize(is);
}

/*
CraftDefinitionToolRepair
*/
@@ -773,18 +672,6 @@ std::string CraftDefinitionToolRepair::dump() const
return os.str();
}

void CraftDefinitionToolRepair::serializeBody(std::ostream &os) const
{
writeF1000(os, additional_wear);
}

void CraftDefinitionToolRepair::deSerializeBody(std::istream &is, int version)
{
if (version != 1) throw SerializationError(
"unsupported CraftDefinitionToolRepair version");
additional_wear = readF1000(is);
}

/*
CraftDefinitionCooking
*/
@@ -876,24 +763,6 @@ std::string CraftDefinitionCooking::dump() const
return os.str();
}

void CraftDefinitionCooking::serializeBody(std::ostream &os) const
{
os << serializeString(output);
os << serializeString(recipe);
writeF1000(os, cooktime);
replacements.serialize(os);
}

void CraftDefinitionCooking::deSerializeBody(std::istream &is, int version)
{
if (version != 1) throw SerializationError(
"unsupported CraftDefinitionCooking version");
output = deSerializeString(is);
recipe = deSerializeString(is);
cooktime = readF1000(is);
replacements.deSerialize(is);
}

/*
CraftDefinitionFuel
*/
@@ -983,22 +852,6 @@ std::string CraftDefinitionFuel::dump() const
return os.str();
}

void CraftDefinitionFuel::serializeBody(std::ostream &os) const
{
os << serializeString(recipe);
writeF1000(os, burntime);
replacements.serialize(os);
}

void CraftDefinitionFuel::deSerializeBody(std::istream &is, int version)
{
if (version != 1) throw SerializationError(
"unsupported CraftDefinitionFuel version");
recipe = deSerializeString(is);
burntime = readF1000(is);
replacements.deSerialize(is);
}

/*
Craft definition manager
*/
@@ -128,8 +128,6 @@ struct CraftReplacements
pairs(pairs_)
{}
std::string dump() const;
void serialize(std::ostream &os) const;
void deSerialize(std::istream &is);
};

/*
@@ -141,9 +139,6 @@ class CraftDefinition
CraftDefinition(){}
virtual ~CraftDefinition(){}

void serialize(std::ostream &os) const;
static CraftDefinition* deSerialize(std::istream &is);

// Returns type of crafting definition
virtual std::string getName() const=0;

@@ -164,9 +159,6 @@ class CraftDefinition
virtual void initHash(IGameDef *gamedef) = 0;

virtual std::string dump() const=0;
protected:
virtual void serializeBody(std::ostream &os) const=0;
virtual void deSerializeBody(std::istream &is, int version)=0;
};

/*
@@ -204,10 +196,6 @@ class CraftDefinitionShaped: public CraftDefinition

virtual std::string dump() const;

protected:
virtual void serializeBody(std::ostream &os) const;
virtual void deSerializeBody(std::istream &is, int version);

private:
// Output itemstring
std::string output;
@@ -256,10 +244,6 @@ class CraftDefinitionShapeless: public CraftDefinition

virtual std::string dump() const;

protected:
virtual void serializeBody(std::ostream &os) const;
virtual void deSerializeBody(std::istream &is, int version);

private:
// Output itemstring
std::string output;
@@ -303,10 +287,6 @@ class CraftDefinitionToolRepair: public CraftDefinition

virtual std::string dump() const;

protected:
virtual void serializeBody(std::ostream &os) const;
virtual void deSerializeBody(std::istream &is, int version);

private:
// This is a constant that is added to the wear of the result.
// May be positive or negative, allowed range [-1,1].
@@ -349,10 +329,6 @@ class CraftDefinitionCooking: public CraftDefinition

virtual std::string dump() const;

protected:
virtual void serializeBody(std::ostream &os) const;
virtual void deSerializeBody(std::istream &is, int version);

private:
// Output itemstring
std::string output;
@@ -398,10 +374,6 @@ class CraftDefinitionFuel: public CraftDefinition

virtual std::string dump() const;

protected:
virtual void serializeBody(std::ostream &os) const;
virtual void deSerializeBody(std::istream &is, int version);

private:
// Recipe itemstring
std::string recipe;
@@ -429,7 +401,7 @@ class ICraftDefManager
bool decrementInput, IGameDef *gamedef) const=0;
virtual std::vector<CraftDefinition*> getCraftRecipes(CraftOutput &output,
IGameDef *gamedef, unsigned limit=0) const=0;

// Print crafting recipes for debugging
virtual std::string dump() const=0;
};
@@ -443,7 +415,7 @@ class IWritableCraftDefManager : public ICraftDefManager
// The main crafting function
virtual bool getCraftResult(CraftInput &input, CraftOutput &output,
bool decrementInput, IGameDef *gamedef) const=0;
virtual std::vector<CraftDefinition*> getCraftRecipes(CraftOutput &output,
virtual std::vector<CraftDefinition*> getCraftRecipes(CraftOutput &output,
IGameDef *gamedef, unsigned limit=0) const=0;

// Print crafting recipes for debugging

1 comment on commit 27e3a35

@nerzhul

This comment has been minimized.

Copy link
Member

commented on 27e3a35 Apr 29, 2015

Thanks for this cleanup

Please sign in to comment.
You can’t perform that action at this time.