C#:
using UnityEngine;
namespace Oxide.Plugins
{
[Info("Auto Upgrade To Wood", "nivex", "0.1.0")]
[Description("Auto upgrades twig to wood if the player can afford it.")]
public class AutoUpgradeToWood : RustPlugin
{
private const BuildingGrade.Enum Wood = BuildingGrade.Enum.Wood;
private void OnEntityBuilt(Planner planner, GameObject go)
{
var block = go.ToBaseEntity() as BuildingBlock;
if (block == null)
{
return;
}
var player = planner.GetOwnerPlayer();
NextTick(() =>
{
if (player == null || block == null || block.IsDestroyed || block.grade >= Wood || !block.CanChangeToGrade(Wood, player) || !block.CanAffordUpgrade(Wood, player))
{
return;
}
var g = block.GetGrade(Wood);
if (g == null)
{
return;
}
block.PayForUpgrade(g, player);
block.SetGrade(BuildingGrade.Enum.Wood);
block.SetHealthToMax();
block.StartBeingRotatable();
block.StartBeingDemolishable();
block.SendNetworkUpdate(BasePlayer.NetworkQueue.Update);
block.UpdateSkin(false);
block.ResetUpkeepTime();
BuildingManager.server.GetBuilding(block.buildingID)?.Dirty();
});
}
}
}