Unfuck mostly everything.

This commit is contained in:
FL-OZ
2020-04-30 18:08:51 -05:00
parent 8e0185f892
commit 93c3e86c9f
7 changed files with 69 additions and 52 deletions

View File

@@ -4,6 +4,7 @@ using Content.Server.Interfaces.Chat;
using Content.Server.Interfaces.GameTicking; using Content.Server.Interfaces.GameTicking;
using Content.Server.Preferences; using Content.Server.Preferences;
using Content.Server.Sandbox; using Content.Server.Sandbox;
using Content.Shared.Kitchen;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.ContentPack; using Robust.Shared.ContentPack;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
@@ -70,6 +71,7 @@ namespace Content.Server
logManager.GetSawmill("Storage").Level = LogLevel.Info; logManager.GetSawmill("Storage").Level = LogLevel.Info;
IoCManager.Resolve<IServerPreferencesManager>().StartInit(); IoCManager.Resolve<IServerPreferencesManager>().StartInit();
} }
public override void PostInit() public override void PostInit()
@@ -79,6 +81,7 @@ namespace Content.Server
_gameTicker.Initialize(); _gameTicker.Initialize();
IoCManager.Resolve<ISandboxManager>().Initialize(); IoCManager.Resolve<ISandboxManager>().Initialize();
IoCManager.Resolve<IServerPreferencesManager>().FinishInit(); IoCManager.Resolve<IServerPreferencesManager>().FinishInit();
IoCManager.Resolve<RecipeManager>().Initialize();
} }
public override void Update(ModUpdateLevel level, FrameEventArgs frameEventArgs) public override void Update(ModUpdateLevel level, FrameEventArgs frameEventArgs)

View File

@@ -14,6 +14,7 @@ using Content.Server.GameObjects.Components.Chemistry;
using Content.Shared.Chemistry; using Content.Shared.Chemistry;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
using Content.Shared.Prototypes.Kitchen;
using Content.Shared.Kitchen; using Content.Shared.Kitchen;
namespace Content.Server.GameObjects.Components.Kitchen namespace Content.Server.GameObjects.Components.Kitchen
@@ -24,61 +25,19 @@ namespace Content.Server.GameObjects.Components.Kitchen
{ {
#pragma warning disable 649 #pragma warning disable 649
[Dependency] private readonly IPrototypeManager _prototypeManager;
[Dependency] private readonly IEntityManager _entityManager; [Dependency] private readonly IEntityManager _entityManager;
[Dependency] private readonly RecipeManager _recipeManager;
#pragma warning restore 649 #pragma warning restore 649
public override string Name => "Microwave"; public override string Name => "Microwave";
private AppearanceComponent _appearanceComponent;
[ViewVariables]
private string _useSound;
[ViewVariables]
private string _outputPrototype;
[ViewVariables] [ViewVariables]
private SolutionComponent _contents; private SolutionComponent _contents;
private static List<MicrowaveMealRecipePrototype> _allRecipes;
public override void ExposeData(ObjectSerializer serializer) public override void ExposeData(ObjectSerializer serializer)
{ {
base.ExposeData(serializer); base.ExposeData(serializer);
if(_allRecipes == null)
{
_allRecipes = new List<MicrowaveMealRecipePrototype>();
foreach (var recipe in _prototypeManager.EnumeratePrototypes<MicrowaveMealRecipePrototype>())
{
_allRecipes.Add(recipe);
}
_allRecipes.Sort(new RecipeComparer());
}
}
private class RecipeComparer : IComparer<MicrowaveMealRecipePrototype>
{
int IComparer<MicrowaveMealRecipePrototype>.Compare(MicrowaveMealRecipePrototype x, MicrowaveMealRecipePrototype y)
{
if(x == null || y == null)
{
return 0;
}
if (x.Ingredients.Count < y.Ingredients.Count)
{
return 1;
}
if (x.Ingredients.Count > y.Ingredients.Count)
{
return -1;
}
return 0;
}
} }
public override void Initialize() public override void Initialize()
@@ -101,12 +60,12 @@ namespace Content.Server.GameObjects.Components.Kitchen
{ {
if(_contents.ReagentList.Count > 0) if(_contents.ReagentList.Count > 0)
{ {
foreach (var r in _allRecipes) foreach(var r in _recipeManager.Recipes)
{ {
if (CanSatisfyRecipe(r)) if(CanSatisfyRecipe(r))
{ {
var outputFromRecipe = r.Result; var resultPrototype = r.Result;
_entityManager.SpawnEntity(outputFromRecipe, Owner.Transform.GridPosition); _entityManager.SpawnEntity(resultPrototype, Owner.Transform.GridPosition);
return; return;
} }
@@ -115,7 +74,7 @@ namespace Content.Server.GameObjects.Components.Kitchen
} }
private bool CanSatisfyRecipe(MicrowaveMealRecipePrototype recipe) private bool CanSatisfyRecipe(MealRecipePrototype recipe)
{ {
foreach(var ingredient in recipe.Ingredients) foreach(var ingredient in recipe.Ingredients)
{ {

View File

@@ -8,6 +8,7 @@ using Content.Server.Preferences;
using Content.Server.Sandbox; using Content.Server.Sandbox;
using Content.Server.Utility; using Content.Server.Utility;
using Content.Shared.Chemistry; using Content.Shared.Chemistry;
using Content.Shared.Kitchen;
using Content.Shared.Interfaces; using Content.Shared.Interfaces;
using Content.Shared.Interfaces.Chemistry; using Content.Shared.Interfaces.Chemistry;
using Robust.Shared.IoC; using Robust.Shared.IoC;
@@ -28,6 +29,7 @@ namespace Content.Server
IoCManager.Register<ICargoOrderDataManager, CargoOrderDataManager>(); IoCManager.Register<ICargoOrderDataManager, CargoOrderDataManager>();
IoCManager.Register<IModuleManager, ServerModuleManager>(); IoCManager.Register<IModuleManager, ServerModuleManager>();
IoCManager.Register<IServerPreferencesManager, ServerPreferencesManager>(); IoCManager.Register<IServerPreferencesManager, ServerPreferencesManager>();
IoCManager.Register<RecipeManager, RecipeManager>();
} }
} }
} }

View File

@@ -6,7 +6,7 @@
using Robust.Shared.IoC; using Robust.Shared.IoC;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
namespace Content.Shared namespace Content.Shared
{ {
public class EntryPoint : GameShared public class EntryPoint : GameShared
{ {
@@ -55,5 +55,6 @@
_tileDefinitionManager.Initialize(); _tileDefinitionManager.Initialize();
} }
} }
} }

View File

@@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using Content.Shared.Prototypes.Kitchen;
using Robust.Shared.IoC;
using Robust.Shared.Prototypes;
namespace Content.Shared.Kitchen
{
public class RecipeManager
{
#pragma warning disable 649
[Dependency] private readonly IPrototypeManager _prototypeManager;
#pragma warning restore 649
public List<MealRecipePrototype> Recipes { get; private set; }
public void Initialize()
{
Recipes = new List<MealRecipePrototype>();
foreach (var item in _prototypeManager.EnumeratePrototypes<MealRecipePrototype>())
{
Recipes.Add(item);
}
Recipes.Sort(new RecipeComparer());
}
private class RecipeComparer : IComparer<MealRecipePrototype>
{
int IComparer<MealRecipePrototype>.Compare(MealRecipePrototype x, MealRecipePrototype y)
{
if (x == null || y == null)
{
return 0;
}
if (x.Ingredients.Count < y.Ingredients.Count)
{
return 1;
}
if (x.Ingredients.Count > y.Ingredients.Count)
{
return -1;
}
return 0;
}
}
}
}

View File

@@ -7,7 +7,7 @@ using Robust.Shared.Serialization;
using Robust.Shared.Utility; using Robust.Shared.Utility;
using YamlDotNet.RepresentationModel; using YamlDotNet.RepresentationModel;
namespace Content.Shared.Kitchen namespace Content.Shared.Prototypes.Kitchen
{ {
/// <summary> /// <summary>
/// A recipe for space microwaves. /// A recipe for space microwaves.
@@ -15,7 +15,7 @@ namespace Content.Shared.Kitchen
[Prototype("microwaveMealRecipe")] [Prototype("microwaveMealRecipe")]
public class MicrowaveMealRecipePrototype : IPrototype, IIndexedPrototype public class MealRecipePrototype : IPrototype, IIndexedPrototype
{ {
private string _id; private string _id;

View File

@@ -13,7 +13,7 @@
- type: Collidable - type: Collidable
shapes: shapes:
- !type:PhysShapeAabb - !type:PhysShapeAabb
bounds: "-0.5,0,0.5,1" bounds: "-0.25,-0.4,0.25,0.4"
layer: 15 layer: 15
IsScrapingFloor: true IsScrapingFloor: true
- type: Sprite - type: Sprite