Esempio n. 1
0
        public RuntimeTerraEntity AddEntity(AssembledEntity entity)
        {
            RuntimeTerraEntity newRuntimeEntity = new RuntimeTerraEntity(entity, Game.Instance.GetService <TerraDBService>());

            OnAddEntity?.Invoke(newRuntimeEntity);
            return(newRuntimeEntity);
        }
Esempio n. 2
0
        public void RemoveEntity(AssembledEntity entity)
        {
            TerraDBService db = Game.Instance.GetService <TerraDBService>();

            Entities.Remove(entity);
            OnRemoveEntity?.Invoke(new RuntimeTerraEntity(entity, db));
        }
        public RuntimeTerraEntity CreateEntity(ITerraEntityType entityType)
        {
            TerraEntity     newEntity = new TerraEntity();
            AssembledEntity assembled = new AssembledEntity(newEntity);

            newEntity.EntityID = entityType.EntityID;
            _db.Write(newEntity, TerraEntity.Serializer, TerraEntity.WherePrimaryKey);
            RuntimeTerraEntity runtimeTerraEntity = new RuntimeTerraEntity(assembled, _db);

            return(runtimeTerraEntity);
        }
        public RuntimeTerraEntity(AssembledEntity entity, TerraDBService db)
        {
            entity.TerraPosition3D.InstanceId = entity.TerraEntity.InstanceId;
            Position = new TerraPosition3DComponent(db, entity.TerraPosition3D);
            Entity   = entity.TerraEntity;

            Entity.OnLabelAdded   += (labelEntity, label) => OnLabelAdded?.Invoke(this, label);
            Entity.OnLabelRemoved += (labelEntity, label) => OnLabelRemoved?.Invoke(this, label);

            EntityTypeData = TerraGameResources.Instance.TerraEntityPrefabConfig.GetEntityConfig(this);
            DB             = db;
        }