Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }