Show More
Commit Description:
Make censoring more completem.
Commit Description:
Make censoring more completem.
References:
File last commit:
Show/Diff file:
Action:
isometric-park-fna/Engines/GameBridgeEngine.cs
116 lines | 3.8 KiB | text/x-csharp | CSharpLexer
116 lines | 3.8 KiB | text/x-csharp | CSharpLexer
r350 | ||||
using System.IO; | ||||
r170 | ||||
using Microsoft.Xna.Framework.Input; | ||||
r350 | using Newtonsoft.Json; | |||
r170 | using Encompass; | |||
using isometricparkfna.Messages; | ||||
r192 | using isometricparkfna.Components; | |||
r170 | ||||
r357 | namespace isometricparkfna.Engines | |||
{ | ||||
r170 | ||||
r350 | ||||
r357 | [Receives(typeof(ToggleWindowTypeMessage), typeof(ToggleWindowMessage), | |||
r462 | typeof(GameStateMessage), | |||
typeof(ToggleVisibilityMessage), | ||||
typeof(SetResolutionMessage), | ||||
r463 | typeof(SetFontMessage), | |||
typeof(QuitGameMessage))] | ||||
r357 | [Reads(typeof(AreaComponent), | |||
r462 | typeof(ContractStatusComponent), | |||
typeof(OptionsComponent))] | ||||
r357 | class GameBridgeEngine : Engine | |||
{ | ||||
r170 | ||||
r357 | public FNAGame game; | |||
r170 | ||||
r357 | public GameBridgeEngine(FNAGame game) | |||
{ | ||||
this.game = game; | ||||
} | ||||
r170 | ||||
r357 | public override void Update(double dt) | |||
{ | ||||
r170 | ||||
r462 | ProfanityLevel profanity_setting = default; | |||
r417 | ||||
r357 | foreach (ref readonly var windowMessage in ReadMessages<ToggleWindowTypeMessage>()) | |||
{ | ||||
switch (windowMessage.Window) | ||||
{ | ||||
case Window.Debug: | ||||
game.show_another_window = !game.show_another_window; | ||||
break; | ||||
case Window.Budget: | ||||
game.showBudget = !game.showBudget; | ||||
break; | ||||
} | ||||
} | ||||
foreach (ref readonly var visibilityMessage in ReadMessages<ToggleVisibilityMessage>()) | ||||
{ | ||||
r170 | ||||
r357 | switch (visibilityMessage.Element) | |||
{ | ||||
case Element.Grid: | ||||
game.showGrid = !game.showGrid; | ||||
break; | ||||
case Element.Trees: | ||||
game.showTrees = !game.showTrees; | ||||
break; | ||||
} | ||||
} | ||||
r298 | foreach (ref readonly var stateMessage in ReadMessages<GameStateMessage>()) | |||
r357 | { | |||
game.isPlaying = stateMessage.isPlaying; | ||||
} | ||||
foreach (ref readonly var resolutionMessage in ReadMessages<SetResolutionMessage>()) | ||||
{ | ||||
game.setResolution(resolutionMessage.resolution, | ||||
r462 | resolutionMessage.fullscreen); | |||
r307 | ||||
r357 | } | |||
r417 | foreach (ref readonly var entity in ReadEntities<OptionsComponent>()) | |||
r462 | { | |||
var component = GetComponent<OptionsComponent>(entity); | ||||
r417 | ||||
r462 | profanity_setting = component.ProfanitySetting; | |||
} | ||||
r357 | foreach (ref readonly var fontMessage in ReadMessages<SetFontMessage>()) | |||
{ | ||||
game.setFont(fontMessage.fontName, fontMessage.fontSize); | ||||
r417 | Options.writeOptions(fontMessage.fontName, fontMessage.fontSize, | |||
r462 | profanity_setting); | |||
r345 | ||||
r357 | } | |||
r170 | ||||
r198 | game.in_zone = false; | |||
r433 | game.in_active_zone = false; | |||
r192 | foreach (ref readonly var entity in ReadEntities<AreaComponent>()) | |||
{ | ||||
var areaComponent = GetComponent<AreaComponent>(entity); | ||||
r297 | var contractStatusComponent = GetComponent<ContractStatusComponent>(entity); | |||
r357 | foreach (var square in areaComponent.squares) | |||
{ | ||||
if (game.mouseGrid == square) | ||||
{ | ||||
game.in_zone = true; | ||||
r462 | if ((contractStatusComponent.status == ContractStatus.Active) | |||
|| (contractStatusComponent.status == ContractStatus.Accepted)) | ||||
r357 | { | |||
game.in_active_zone = true; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
r170 | ||||
r463 | foreach (ref readonly var message in ReadMessages<QuitGameMessage>()) | |||
{ | ||||
this.game.quit = true; | ||||
} | ||||
r357 | } | |||
} | ||||
r417 | } | |||