diff --git a/Content.Server/Andromeda/Botany/Systems/PlantExtractorSystem.cs b/Content.Server/Andromeda/Botany/Systems/PlantExtractorSystem.cs index 7026a0b9028..4ee7e0e55bc 100644 --- a/Content.Server/Andromeda/Botany/Systems/PlantExtractorSystem.cs +++ b/Content.Server/Andromeda/Botany/Systems/PlantExtractorSystem.cs @@ -106,7 +106,7 @@ public override void Update(float frameTime) } UpdateUiState(uid); - // _userInterfaceSystem.TrySendUiMessage(uid, PlantExtractorUiKey.Key, new PlantExtractorWorkCompletedMessage()); //A-13 disable + _userInterfaceSystem.ServerSendUiMessage(uid, PlantExtractorUiKey.Key, new PlantExtractorWorkCompletedMessage()); } } @@ -140,7 +140,7 @@ private void UpdateUiState(EntityUid uid) canExtract, GetNetEntityArray(inputContainer.ContainedEntities.ToArray())); - // _userInterfaceSystem.TrySetUiState(uid, PlantExtractorUiKey.Key, state); //A-13 disable + _userInterfaceSystem.SetUiState(uid, PlantExtractorUiKey.Key, state); } #endregion @@ -328,7 +328,7 @@ private void DoWork(EntityUid uid, PlantExtractorComponent component) active.EndTime = _timing.CurTime + component.WorkTime * component.WorkTimeMultiplier; component.AudioStream = _audioSystem.PlayPvs(component.ExtractSound, uid, AudioParams.Default.WithPitchScale(1 / component.WorkTimeMultiplier)).Value.Entity; - // _userInterfaceSystem.TrySendUiMessage(uid, PlantExtractorUiKey.Key, new PlantExtractorWorkStartedMessage()); //A-13 disable + _userInterfaceSystem.ServerSendUiMessage(uid, PlantExtractorUiKey.Key, new PlantExtractorWorkStartedMessage()); //A-13 disable } #endregion diff --git a/Resources/Prototypes/Andromeda/Entities/Mobs/NPCs/mousi.yml b/Resources/Prototypes/Andromeda/Entities/Mobs/NPCs/mousi.yml index 0135f4e956a..ad72d55defd 100644 --- a/Resources/Prototypes/Andromeda/Entities/Mobs/NPCs/mousi.yml +++ b/Resources/Prototypes/Andromeda/Entities/Mobs/NPCs/mousi.yml @@ -78,113 +78,113 @@ strippingWindowPos: 2,4 displayName: ID -#- type: entity -# name: Мауси -# id: MobMousi -# parent: SimpleMobBase -# description: Пиип?... -# components: -# - type: NameIdentifier -# - type: Stripping -# - type: Strippable -# - type: CombatMode -# - type: Inventory -# templateId: mousi -# speciesId: mousi -# - type: InventorySlots -# - type: NpcFactionMember -# factions: -# - Mouse -# - type: Deathgasp -# - type: MobStateActions -# actions: -# Critical: -# - ActionCritSuccumb -# - ActionCritFakeDeath -# - ActionCritLastWords -# - type: Respirator -# damage: -# types: -# Asphyxiation: 0.25 -# damageRecovery: -# types: -# Asphyxiation: -0.25 -# - type: Hunger -# baseDecayRate: 0.1 -# - type: Fixtures -# fixtures: -# fix1: -# shape: -# !type:PhysShapeCircle -# radius: 0.40 -# density: 80 -# mask: -# - MobMask -# layer: -# - MobLayer -# - type: UserInterface -# interfaces: -# - key: enum.StrippingUiKey.Key -# type: StrippableBoundUserInterface -# - type: InteractionPopup -# successChance: 0.8 -# interactSuccessString: hugging-success-generic-mousi -# interactFailureString: hugging-failure-generic-mousi -# messagePerceivedByOthers: hugging-success-generic-mousi-others -# interactSuccessSpawn: EffectHearts -# interactSuccessSound: /Audio/Animals/fox_squeak.ogg -# interactFailureSound: /Audio/Effects/thudswoosh.ogg -# - type: Sprite -# drawdepth: Mobs -# sprite: Andromeda/Mobs/Animals/mousi.rsi -# layers: -# - map: [ "enum.DamageStateVisualLayers.Base" ] -# state: running -# - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] -# state: running-unshaded -# shader: unshaded -# - type: DamageStateVisuals -# rotate: true -# states: -# Alive: -# Base: running -# Critical: -# Base: crit -# Dead: -# Base: dead -# - type: MobThresholds -# thresholds: -# 0: Alive -# 100: Critical -# 200: Dead -# - type: Stamina -# critThreshold: 100 -# - type: Bloodstream -# bloodMaxVolume: 250 -# - type: Hands -# - type: Speech -# speechSounds: Squeak -# speechVerb: SmallMob -# - type: Body -# prototype: Mousi -# requiredLegs: 1 -# - type: Butcherable -# butcheringType: Spike -# spawned: -# - id: FoodMeat -# amount: 5 -# - type: Puller -# needsHands: false -# - type: Vocal -# sounds: -# Male: Mouse -# Female: Mouse -# Unsexed: Mouse -# #- type: TTS -# # voice: mana -# - type: GhostRole -# allowMovement: true -# allowSpeech: true -# name: Мауси -# description: Вы большая, человекоподобная мышь. Скуик! -# - type: GhostTakeoverAvailable +- type: entity + name: Мауси + id: MobMousi + parent: SimpleMobBase + description: Пиип?... + components: + - type: NameIdentifier + - type: Stripping + - type: Strippable + - type: CombatMode + - type: Inventory + templateId: mousi + speciesId: mousi + - type: InventorySlots + - type: NpcFactionMember + factions: + - Mouse + - type: Deathgasp + - type: MobStateActions + actions: + Critical: + - ActionCritSuccumb + - ActionCritFakeDeath + - ActionCritLastWords + - type: Respirator + damage: + types: + Asphyxiation: 0.25 + damageRecovery: + types: + Asphyxiation: -0.25 + - type: Hunger + baseDecayRate: 0.1 + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.40 + density: 80 + mask: + - MobMask + layer: + - MobLayer + - type: UserInterface + interfaces: + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: InteractionPopup + successChance: 0.8 + interactSuccessString: hugging-success-generic-mousi + interactFailureString: hugging-failure-generic-mousi + messagePerceivedByOthers: hugging-success-generic-mousi-others + interactSuccessSpawn: EffectHearts + interactSuccessSound: /Audio/Animals/fox_squeak.ogg + interactFailureSound: /Audio/Effects/thudswoosh.ogg + - type: Sprite + drawdepth: Mobs + sprite: Andromeda/Mobs/Animals/mousi.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: running + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: running-unshaded + shader: unshaded + - type: DamageStateVisuals + rotate: true + states: + Alive: + Base: running + Critical: + Base: crit + Dead: + Base: dead + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 200: Dead + - type: Stamina + critThreshold: 100 + - type: Bloodstream + bloodMaxVolume: 250 + - type: Hands + - type: Speech + speechSounds: Squeak + speechVerb: SmallMob + - type: Body + prototype: Mousi + requiredLegs: 1 + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeat + amount: 5 + - type: Puller + needsHands: false + - type: Vocal + sounds: + Male: Mouse + Female: Mouse + Unsexed: Mouse + - type: TTS + voice: mana + - type: GhostRole + allowMovement: true + allowSpeech: true + name: Мауси + description: Вы большая, человекоподобная мышь. Скуик! + - type: GhostTakeoverAvailable diff --git a/Resources/Prototypes/Andromeda/Entities/Structures/Machines/plant_extractor.yml b/Resources/Prototypes/Andromeda/Entities/Structures/Machines/plant_extractor.yml index c4e144ee33a..d85853f7bc3 100644 --- a/Resources/Prototypes/Andromeda/Entities/Structures/Machines/plant_extractor.yml +++ b/Resources/Prototypes/Andromeda/Entities/Structures/Machines/plant_extractor.yml @@ -1,83 +1,83 @@ -#- type: entity -# id: plant_extractor -# parent: [ BaseMachinePowered, ConstructibleMachine ] -# name: Plant extractor -# description: Advanced plant reagent extraction machine. -# placement: -# mode: SnapgridCenter -# components: -# - type: Sprite -# sprite: Structures/Machines/plant_extractor.rsi -# netsync: false -# snapCardinals: true -# layers: -# - state: plant_extractor_empty -# - state: plant_extractor_screens -# shader: unshaded -# map: ["enum.PowerDeviceVisualLayers.Powered"] -# - type: Icon -# sprite: Structures/Machines/plant_extractor.rsi -# state: plant_extractor_loaded -# - type: PlantExtractor -# baseStorageMaxEntities: 10 -# - type: Physics -# bodyType: Static -# - type: Fixtures -# fixtures: -# fix1: -# shape: -# !type:PhysShapeAabb -# bounds: "-0.25,-0.4,0.25,0.4" -# density: 190 -# mask: -# - MachineMask -# layer: -# - MachineLayer -# - type: Destructible -# thresholds: -# - trigger: -# !type:DamageTrigger -# damage: 50 -# behaviors: -# - !type:ChangeConstructionNodeBehavior -# node: machineFrame -# - !type:DoActsBehavior -# acts: [ "Destruction" ] -# - type: ActivatableUI -# key: enum.PlantExtractorUiKey.Key -# - type: ActivatableUIRequiresPower -# - type: UserInterface -# interfaces: -# - key: enum.PlantExtractorUiKey.Key -# type: PlantExtractorBoundUserInterface -# - type: ApcPowerReceiver -# powerLoad: 350 -# - type: Appearance -# - type: GenericVisualizer -# visuals: -# enum.PowerDeviceVisuals.Powered: -# enum.PowerDeviceVisualLayers.Powered: -# True: { visible: true } -# False: { visible: false } -# # Machine / Construction stuff -# - type: Wires -# boardName: "Plant Extractor" -# layoutId: PlantExtractor -# - type: Machine -# board: PlantExtractorMachineCircuitboard -# - type: ContainerContainer -# containers: -# beakerContainer: !type:ContainerSlot -# inputContainer: !type:Container -# machine_board: !type:Container -# machine_parts: !type:Container -# - type: ItemSlots -# slots: -# beakerContainer: -# whitelist: -# components: -# - FitsInDispenser -# - type: SolutionContainerManager -# solutions: -# buffer: -# canBoil: false +- type: entity + id: plant_extractor + parent: [ BaseMachinePowered, ConstructibleMachine ] + name: Plant extractor + description: Advanced plant reagent extraction machine. + placement: + mode: SnapgridCenter + components: + - type: Sprite + sprite: Structures/Machines/plant_extractor.rsi + netsync: false + snapCardinals: true + layers: + - state: plant_extractor_empty + - state: plant_extractor_screens + shader: unshaded + map: ["enum.PowerDeviceVisualLayers.Powered"] + - type: Icon + sprite: Structures/Machines/plant_extractor.rsi + state: plant_extractor_loaded + - type: PlantExtractor + baseStorageMaxEntities: 10 + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.4,0.25,0.4" + density: 190 + mask: + - MachineMask + layer: + - MachineLayer + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: ActivatableUI + key: enum.PlantExtractorUiKey.Key + - type: ActivatableUIRequiresPower + - type: UserInterface + interfaces: + enum.PlantExtractorUiKey.Key: + type: PlantExtractorBoundUserInterface + - type: ApcPowerReceiver + powerLoad: 350 + - type: Appearance + - type: GenericVisualizer + visuals: + enum.PowerDeviceVisuals.Powered: + enum.PowerDeviceVisualLayers.Powered: + True: { visible: true } + False: { visible: false } + #Machine / Construction stuff + - type: Wires + boardName: "Plant Extractor" + layoutId: PlantExtractor + - type: Machine + board: PlantExtractorMachineCircuitboard + - type: ContainerContainer + containers: + beakerContainer: !type:ContainerSlot + inputContainer: !type:Container + machine_board: !type:Container + machine_parts: !type:Container + - type: ItemSlots + slots: + beakerContainer: + whitelist: + components: + - FitsInDispenser + - type: SolutionContainerManager + solutions: + buffer: + canBoil: false