diff --git a/src/mapnode.cpp b/src/mapnode.cpp index 4e8feb04..3940c586 100644 --- a/src/mapnode.cpp +++ b/src/mapnode.cpp @@ -155,7 +155,7 @@ void MapNode::rotateAlongYAxis(INodeDefManager *nodemgr, Rotation rot) { u8 wmountface = (param2 & 7); if (wmountface <= 1) return; - + Rotation oldrot = wallmounted_to_rot[wmountface - 2]; param2 &= ~7; param2 |= rot_to_wallmounted[(oldrot - rot) & 3]; @@ -439,28 +439,11 @@ u8 MapNode::addLevel(INodeDefManager *nodemgr, s8 add) return setLevel(nodemgr, level); } -void MapNode::freezeMelt(INodeDefManager *ndef) { - u8 level_was_max = this->getMaxLevel(ndef); - u8 level_was = this->getLevel(ndef); - this->setContent(ndef->getId(ndef->get(*this).freezemelt)); - u8 level_now_max = this->getMaxLevel(ndef); - if (level_was_max && level_was_max != level_now_max) { - u8 want = (float)level_now_max / level_was_max * level_was; - if (!want) - want = 1; - if (want != level_was) - this->setLevel(ndef, want); - //errorstream<<"was="<<(int)level_was<<"/"<<(int)level_was_max<<" nowm="<<(int)want<<"/"<<(int)level_now_max<< " => "<<(int)this->getLevel(ndef)<< std::endl; - } - if (this->getMaxLevel(ndef) && !this->getLevel(ndef)) - this->addLevel(ndef); -} - u32 MapNode::serializedLength(u8 version) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); - + if(version == 0) return 1; else if(version <= 9) @@ -474,13 +457,13 @@ void MapNode::serialize(u8 *dest, u8 version) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); - + // Can't do this anymore; we have 16-bit dynamically allocated node IDs // in memory; conversion just won't work in this direction. if(version < 24) throw SerializationError("MapNode::serialize: serialization to " "version < 24 not possible"); - + writeU16(dest+0, param0); writeU8(dest+2, param1); writeU8(dest+3, param2); @@ -489,7 +472,7 @@ void MapNode::deSerialize(u8 *source, u8 version) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); - + if(version <= 21) { deSerialize_pre22(source, version); @@ -651,7 +634,7 @@ void MapNode::deSerialize_pre22(u8 *source, u8 version) param2 &= 0x0f; } } - + // Convert special values from old version to new if(version <= 19) { diff --git a/src/mapnode.h b/src/mapnode.h index da6e9bde..ec21a201 100644 --- a/src/mapnode.h +++ b/src/mapnode.h @@ -62,11 +62,11 @@ typedef u16 content_t; /* Ignored node. - + Unloaded chunks are considered to consist of this. Several other methods return this when an error occurs. Also, during map generation this means the node has not been set yet. - + Doesn't create faces with anything and is considered being out-of-map in the game map. */ @@ -132,7 +132,7 @@ struct MapNode - Uhh... well, most blocks have light or nothing in here. */ u8 param1; - + /* The second parameter. Initialized to 0. E.g. direction for torches and flowing water. @@ -161,7 +161,7 @@ struct MapNode && param1 == other.param1 && param2 == other.param2); } - + // To be used everywhere content_t getContent() const { @@ -187,7 +187,7 @@ struct MapNode { param2 = p; } - + void setLight(enum LightBank bank, u8 a_light, INodeDefManager *nodemgr); u8 getLight(enum LightBank bank, INodeDefManager *nodemgr) const; @@ -223,7 +223,7 @@ struct MapNode u8 getFaceDir(INodeDefManager *nodemgr) const; u8 getWallMounted(INodeDefManager *nodemgr) const; v3s16 getWallMountedDir(INodeDefManager *nodemgr) const; - + void rotateAlongYAxis(INodeDefManager *nodemgr, Rotation rot); /* @@ -241,12 +241,13 @@ struct MapNode */ std::vector getCollisionBoxes(INodeDefManager *nodemgr) const; - /* Liquid helpers */ + /* + Liquid helpers + */ u8 getMaxLevel(INodeDefManager *nodemgr) const; u8 getLevel(INodeDefManager *nodemgr) const; u8 setLevel(INodeDefManager *nodemgr, s8 level = 1); u8 addLevel(INodeDefManager *nodemgr, s8 add = 1); - void freezeMelt(INodeDefManager *nodemgr); /* Serialization functions @@ -255,7 +256,7 @@ struct MapNode static u32 serializedLength(u8 version); void serialize(u8 *dest, u8 version); void deSerialize(u8 *source, u8 version); - + // Serializes or deserializes a list of nodes in bulk format (first the // content of all nodes, then the param1 of all nodes, then the param2 // of all nodes). diff --git a/src/nodedef.cpp b/src/nodedef.cpp index f01a7e87..f7bb5aba 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -227,7 +227,6 @@ void ContentFeatures::reset() liquid_alternative_source = ""; liquid_viscosity = 0; liquid_renewable = true; - freezemelt = ""; liquid_range = LIQUID_LEVEL_MAX+1; drowning = 0; light_source = 0; diff --git a/src/nodedef.h b/src/nodedef.h index ef637188..19fa0c0c 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -234,8 +234,6 @@ struct ContentFeatures u8 liquid_viscosity; // Is liquid renewable (new liquid source will be created between 2 existing) bool liquid_renewable; - // Ice for water, water for ice - std::string freezemelt; // Number of flowing liquids surrounding source u8 liquid_range; u8 drowning; diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 4eba280e..ff9aee8e 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -414,7 +414,6 @@ ContentFeatures read_content_features(lua_State *L, int index) f.leveled = getintfield_default(L, index, "leveled", f.leveled); getboolfield(L, index, "liquid_renewable", f.liquid_renewable); - getstringfield(L, index, "freezemelt", f.freezemelt); f.drowning = getintfield_default(L, index, "drowning", f.drowning); // Amount of light the node emits