void HeatEntities(float dt) { IPlayer[] players = api.World.AllOnlinePlayers; foreach (IPlayer curPlayer in players) { EntityPlayer playerEntity = curPlayer.Entity; float distance = block.Pos.DistanceTo(playerEntity.Pos.AsBlockPos); if (distance > heatRange || !playerEntity.HasBehavior("bodyheat")) { continue; } float distanceModifier = (heatRange - distance) / heatRange; switch (block.GetType().Name) { case "BlockEntityForge": if (((BlockEntityForge)block).IsBurning) { break; } continue; case "BlockEntityFirepit": if (((BlockEntityFirepit)block).IsBurning) { break; } continue; case "BlockEntityCharcoalPit": if (((BlockEntityCharcoalPit)block).Lit) { break; } continue; default: continue; } playerEntity.GetBehavior <EntityBehaviorBodyheat>()?.HeatUp(heatTemp * distanceModifier); } }