mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Remove freezemelt (the remainder of proller nonsense)
This commit is contained in:
		@@ -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)
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
@@ -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<aabb3f> 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).
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user