Beispiel #1
0
        public void TestEventField()
        {
            var entityFactory = new EntityFactory();

            EntityChangedEvent entityChanged = null;

            entityFactory.EntityValueChanged += (s, e) => { entityChanged = e; };

            var errandType = entityFactory.CreateType("Errand");

            entityFactory.RegisterPlugin(new FakeErrandExtensions());

            errandType.AddField(new EntityTypeFieldItem()
            {
                FieldId          = "name",
                FieldDescription = "Название",
                FieldType        = "string"
            });

            var errandItem1 = entityFactory.CreateItem(errandType);

            errandItem1.SetValue("name", "Проект");


            Assert.AreEqual("Errand", entityChanged?.Target?.EntityType?.Name);
            Assert.AreEqual("name", entityChanged.FieldKey);
            Assert.AreEqual("", entityChanged.OldValue);
            Assert.AreEqual("Проект", entityChanged.NewValue);
        }
Beispiel #2
0
 /// <summary>Method which is called when an entity wants to notify that one of it's tags changed value.</summary>
 /// <param name="entity">The entity which has changed.</param>
 /// <param name="t">The game tag which value changed.</param>
 /// <param name="oldValue">The old value.</param>
 /// <param name="newValue">The new value.</param>
 protected internal virtual void OnEntityChanged(Entity entity, GameTag t, int oldValue, int newValue)
 {
     EntityChangedEvent?.Invoke(entity, t, oldValue, newValue);
 }