-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;
-}
-