public void SetLargeGear(BlockEntity be) { if (largeGear == null) { largeGear = be.GetBehavior <BEBehaviorMPLargeGear3m>(); } }
protected void CheckLargeGearJoin() { string orientations = (Block as BlockAngledGears).Orientation; if (orientations.Length == 2 && orientations[0] == orientations[1]) { BlockPos largeGearPos = this.Position.AddCopy(this.orientation.Opposite); BlockEntity be = this.Api.World?.BlockAccessor.GetBlockEntity(largeGearPos); largeGear = be?.GetBehavior <BEBehaviorMPLargeGear3m>(); } }
public float LargeGearAngleRad(float unchanged) { if (largeGear == null) { BlockPos largeGearPos = this.Position.AddCopy(this.orientation.Opposite); BlockEntity be = this.Api.World?.BlockAccessor.GetBlockEntity(largeGearPos); largeGear = be?.GetBehavior <BEBehaviorMPLargeGear3m>(); if (largeGear == null) { return(unchanged); } } int dir = this.orientation == BlockFacing.SOUTH ? -1 : 1; return(dir * largeGear.GetSmallgearAngleRad() % GameMath.TWOPI); }
public void ClearLargeGear() { this.largeGear = null; }
public void AddToLargeGearNetwork(BEBehaviorMPLargeGear3m largeGear, BlockFacing outFacing) { this.JoinNetwork(largeGear.Network); this.SetPropagationDirection(new MechPowerPath(outFacing, largeGear.GearedRatio * largeGear.ratio, null, largeGear.GetPropagationDirection() == BlockFacing.DOWN)); }