C#:
using System.Collections.Generic;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("BranchSetter", "Quen", "1.3.0")]
[Description("Automatically sets all electrical branches to 10")]
public class BranchSetter : RustPlugin
{
private const int FixedBranchValue = 10;
private HashSet<ElectricalBranch> cachedBranches = new HashSet<ElectricalBranch>();
private void Init()
{
cachedBranches.Clear();
foreach (var entity in BaseNetworkable.serverEntities)
{
var branch = entity as ElectricalBranch;
if (branch != null)
cachedBranches.Add(branch);
}
}
private void OnEntityBuilt(Planner plan, GameObject go)
{
var branch = go.GetComponent<ElectricalBranch>();
HandleBranchEntity(branch);
}
private void OnEntitySpawned(BaseNetworkable entity)
{
var branch = entity as ElectricalBranch;
HandleBranchEntity(branch);
}
private void OnEntityKill(BaseNetworkable entity)
{
var branch = entity as ElectricalBranch;
if (branch != null)
cachedBranches.Remove(branch);
}
private void HandleBranchEntity(ElectricalBranch branch)
{
if (branch != null)
{
cachedBranches.Add(branch);
timer.Once(0.1f, () => SetBranch(branch));
}
}
private void SetBranch(ElectricalBranch branch)
{
if (branch == null) return;
branch.branchAmount = FixedBranchValue;
branch.SendNetworkUpdate();
}
}
}