public ViewModelWindowBarrel( IStaticWorldObject worldObjectManufacturer, ObjectManufacturerPrivateState privateState, ManufacturingConfig manufacturingConfig) : base( worldObjectManufacturer, privateState, manufacturingConfig) { this.protoBarrel = (IProtoObjectBarrel)worldObjectManufacturer.ProtoStaticWorldObject; this.LiquidCapacity = this.protoBarrel.LiquidCapacity; this.privateState = this.protoBarrel.GetBarrelPrivateState(worldObjectManufacturer); this.privateState.ClientSubscribe( _ => _.LiquidAmount, _ => this.RefreshLiquidAmount(), this); this.privateState.ClientSubscribe( _ => _.LiquidType, _ => this.RefreshLiquidType(), this); var manufacturingState = privateState.ManufacturingState; manufacturingState.ClientSubscribe( _ => _.SelectedRecipe, _ => this.RefreshRecipe(), this); this.craftingQueueItems = manufacturingState.CraftingQueue.QueueItems; this.craftingQueueItems.ClientAnyModification += this.QueueItemsClientAnyModificationHandler; this.RefreshLiquidAmount(); this.RefreshRecipe(); // no need - automatically refreshed with the recipe refresh //this.RefreshLiquidType(); }
public ViewModelWindowBarrel( IStaticWorldObject worldObjectManufacturer, ManufacturingState manufacturingState, ManufacturingConfig manufacturingConfig) : base( worldObjectManufacturer, manufacturingState, manufacturingConfig, null) { var protoBarrel = (IProtoObjectBarrel)worldObjectManufacturer.ProtoStaticWorldObject; this.LiquidCapacity = protoBarrel.LiquidCapacity; this.privateState = protoBarrel.GetBarrelPrivateState(worldObjectManufacturer); this.privateState.ClientSubscribe( _ => _.LiquidAmount, _ => this.RefreshLiquidAmount(), this); this.privateState.ClientSubscribe( _ => _.LiquidType, _ => this.RefreshLiquidType(), this); manufacturingState.ClientSubscribe( _ => _.SelectedRecipe, _ => this.RefreshRecipe(), this); this.RefreshLiquidAmount(); this.RefreshRecipe(); // no need - automatically refreshed with the recipe refresh //this.RefreshLiquidType(); }