public ViewModelDepositCapacityStatsControl(IStaticWorldObject worldObjectDeposit) { this.worldObjectDeposit = worldObjectDeposit; if (worldObjectDeposit != null) { this.publicState = worldObjectDeposit.GetPublicState <StaticObjectPublicState>(); this.protoDeposit = (IProtoObjectDeposit)worldObjectDeposit.ProtoStaticWorldObject; this.ValueMax = this.protoDeposit.StructurePointsMax; // subscribe on updates this.publicState.ClientSubscribe( _ => _.StructurePointsCurrent, _ => this.RefreshDepletion(), this); } else { // no deposit (assume depleted) this.ValueMax = 0; } this.RefreshDepletion(); this.RefreshAvailableToClaim(); }
public ViewModelDepositCapacityStatsControl(IStaticWorldObject worldObjectDeposit, Vector2Ushort tilePosition) { this.worldObjectDeposit = worldObjectDeposit; this.tilePosition = tilePosition; if (worldObjectDeposit is not null) { this.publicState = worldObjectDeposit.GetPublicState <StaticObjectPublicState>(); this.protoDeposit = (IProtoObjectDeposit)worldObjectDeposit.ProtoStaticWorldObject; this.ValueMax = this.protoDeposit.StructurePointsMax; // subscribe on updates this.publicState.ClientSubscribe( _ => _.StructurePointsCurrent, _ => this.RefreshDepletion(), this); } this.RefreshAvailableToClaim(); this.RefreshByTimer(); }