public void OnGUI() { foreach (TerraEntityTypeSO entityTypeSO in TerraGameResources.Instance.TerraEntityPrefabConfig.DataConfig) { ITerraEntityType entityType = entityTypeSO.Data; if (GUILayout.Button($"Create {entityType.EntityID}")) { CreateEntity(entityType); } } }
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 GetEntity(ITerraEntityType type) { foreach (RuntimeTerraEntity entity in _entities) { if (entity.EntityTypeData.EntityID == type.EntityID) { return(entity); } } return(null); }
private void CreateEntity(ITerraEntityType type) { RuntimeTerraEntity entity = Game.Instance.GetService <TerraEntitesService>().CreateEntity(type); TerraEntitiesViewModel vm = Game.Instance.GetViewModel <TerraEntitiesViewModel>(0); RuntimeTerraEntity player = vm.GetEntity(TerraGameResources.Instance.TerraEntityPrefabConfig.PlayerConfig.Data); if (player != null) { entity.Position.Set(new Vector3(player.Position.Data.x, player.Position.Data.y + 2, player.Position.Data.z)); } vm.AddEntity(entity); }
public TerraEntityTypeData GetEntityConfig(ITerraEntityType type) { TerraEntityTypeData config = null; foreach (TerraEntityTypeSO go in DataConfig) { if (go.Data.EntityID == type.EntityID) { config = go.Data; break; } } return(config); }