public ForegroundComponent GetForegroundComponent(int levelId, int x, int y) { var fgComponents = SystemProvider.LevelSystem.GetComponents(levelId, x, y, ComponentType.Foreground); if (fgComponents.Count == 0) { return(null); } if (fgComponents.Count == 1) { return((ForegroundComponent)fgComponents[0]); } ForegroundComponent current = (ForegroundComponent)fgComponents[0]; for (int i = 1; i < fgComponents.Count; i++) { ForegroundComponent possible = (ForegroundComponent)fgComponents[i]; if ((int)possible.DisplayLayer > (int)current.DisplayLayer) { current = possible; } } return(current); }
void GenerateComponents(int entityId, Dictionary <string, string> allParameters, List <Trait> allTraits) { if (allParameters.ContainsKey("BackgroundComponent")) { var component = new BackgroundComponent(entityId, allParameters); AddComponent(entityId, component); } if (allParameters.ContainsKey("ForegroundComponent")) { var component = new ForegroundComponent(entityId, allParameters); AddComponent(entityId, component); } if (allParameters.ContainsKey("MapComponent")) { var component = new MapComponent(entityId, allParameters); AddComponent(entityId, component); } if (allParameters.ContainsKey("PositionComponent")) { var component = new PositionComponent(entityId, allParameters); AddComponent(entityId, component); } // TODO: Setup all the components here. foreach (Trait trait in allTraits) { AddTrait(entityId, trait); } }
public int CreateEntity(string entityName, Dictionary <string, string> otherParameters) { var newEntityId = GetNewEntityId(); Dictionary <string, string> allParameters; List <Trait> allTraits; if (otherParameters.ContainsKey("Material")) { allParameters = CombineParameterDictionaries(otherParameters, ECSDatabase.GetComponentData(entityName, otherParameters["Material"])); allTraits = ECSDatabase.GetTraitData(entityName, otherParameters["Material"]); } else { allParameters = CombineParameterDictionaries(otherParameters, ECSDatabase.GetComponentData(entityName)); allTraits = ECSDatabase.GetTraitData(entityName); } if (allParameters.ContainsKey("BackgroundComponent")) { var component = new BackgroundComponent(newEntityId, allParameters); AddComponent(newEntityId, component); } if (allParameters.ContainsKey("ForegroundComponent")) { var component = new ForegroundComponent(newEntityId, allParameters); AddComponent(newEntityId, component); } if (allParameters.ContainsKey("MapComponent")) { var component = new MapComponent(newEntityId, allParameters); AddComponent(newEntityId, component); } if (allParameters.ContainsKey("PositionComponent")) { var component = new PositionComponent(newEntityId, allParameters); AddComponent(newEntityId, component); } // TODO: Setup all the components here. foreach (Trait trait in allTraits) { AddTrait(newEntityId, trait); } GameEvents.CreateEntityEvent.NewCreateEntityEvent(newEntityId); return(newEntityId); }
public void TestForegroundComponent() { var testComponent1 = new ForegroundComponent(0, '$', "LightBlue", ForegroundDisplayLayer.Furnishing); Assert.AreEqual('$', testComponent1.Symbol); Assert.AreEqual("LightBlue", testComponent1.FGColor); Assert.AreEqual(ForegroundDisplayLayer.Furnishing, testComponent1.DisplayLayer); Assert.AreEqual(ComponentType.Foreground, testComponent1.componentType); var paramDict = new Dictionary <string, string> { { "EntityName", "TestEntity" }, { "Symbol", "$" }, { "ForegroundColor", "LightBlue" }, { "ForegroundDisplayLayer", "Furnishing" } }; var testComponent2 = new ForegroundComponent(0, paramDict); Assert.AreEqual('$', testComponent2.Symbol); Assert.AreEqual("LightBlue", testComponent2.FGColor); Assert.AreEqual(ForegroundDisplayLayer.Furnishing, testComponent2.DisplayLayer); Assert.AreEqual(ComponentType.Foreground, testComponent2.componentType); }