public static Entity Instantiate(EntityID.ID id, float3 pos) { Entity e = m.CreateEntity(); //m.SetName(e, id.ToString()); switch (id) { case EntityID.ID._Empty: break; case EntityID.ID.CharacterGoblin: ConstructCharacter(e, pos, Resource.Mat.GoblinGreen, 125f, 0); break; case EntityID.ID.CharacterPlayer: ConstructCharacter(e, pos, Resource.Mat.HumanBald, 150f, 1); break; case EntityID.ID.ItemApple: ConstructItem(e, pos, Resource.Mat.Apple); break; case EntityID.ID.ItemTurnip: ConstructItem(e, pos, Resource.Mat.Turnip); break; case EntityID.ID.TerrainGrass: ConstructTerrain(e, id, pos, Resource.Mat.Grass); break; case EntityID.ID.Tree: ConstructTree(e, id, pos); break; default: break; } return(e); }
private static void ConstructTree(Entity e, EntityID.ID id, float3 pos) { AddTransform(e, pos); m.AddComponentData(e, new C_LevelData { id = id, x = (int)pos.x, y = (int)(pos.y * 2), z = (int)pos.z }); AddMesh(e, Resource.Mesh.Tree, Resource.Mat.Tree); m.AddComponentData(e, CreateMeshCollider(Resource.Mesh.Cylinder, new float3(3f, 3f, 3f), filterSolidEnvironment, CreatePhysicsMaterial(0f, 0f, false))); }
private static void FillLayer(Level level, EntityID.ID id, int layer) { int xWidth = level.GetXWidth(); int zWidth = level.GetZWidth(); for (int x = 0; x < xWidth; x++) { for (int z = 0; z < zWidth; z++) { level.Set(id, x, layer, z); } } }
public EntityID.ID GetIfInRangeElseReturnInstead(int x, int y, int z, EntityID.ID returnInstead) { if (x >= 0 && x < GetXWidth() && y >= 0 && y < GetHeight() && z >= 0 && z < GetZWidth()) { return(levelData[x, y, z]); } else { return(returnInstead); } }
private static void ConstructTerrain(Entity e, EntityID.ID id, float3 pos, Resource.Mat material) { AddTransform(e, pos); // FIXME: Position in Leveldata should be set directly from Level instead of from world space instantiation position. m.AddComponentData(e, new C_LevelData { id = id, x = (int)pos.x, y = (int)(pos.y * 2), z = (int)pos.z }); m.AddComponentData(e, new C_Ability_CanConnectMeshToNeighbors()); m.AddComponentData(e, new C_State_IsAwaitingNeighborMeshRefresh()); AddMesh(e, Resource.Mesh.Slab, material); m.AddComponentData(e, CreateBoxCollider(1f, 0.5f, 1f, 0f, 0.25f, 0f, filterSolidEnvironment, CreatePhysicsMaterial(0f, 0f, false))); }
private static void FillLayerBorders(Level level, EntityID.ID id, int layer) { int xWidth = level.GetXWidth(); int zWidth = level.GetZWidth(); for (int x = 0; x < xWidth; x++) { for (int z = 0; z < zWidth; z++) { if (x == 0 || z == 0 || x == xWidth - 1 || z == zWidth - 1) { level.Set(id, x, layer, z); } } } }
public static void Generate(Level level) { EntityID.ID _ = EntityID.ID._Empty; EntityID.ID g = EntityID.ID.CharacterGoblin; EntityID.ID p = EntityID.ID.CharacterPlayer; EntityID.ID a = EntityID.ID.ItemApple; EntityID.ID t = EntityID.ID.ItemTurnip; EntityID.ID O = EntityID.ID.TerrainGrass; EntityID.ID T = EntityID.ID.Tree; FillLayer(level, EntityID.ID.TerrainGrass, 0); EntityID.ID[,,] levelData = new EntityID.ID[, , ] { { { T, _, T, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, T, _, T }, { _, _, _, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, _, _, _ }, { T, _, T, _, T, _, _, _, _, _, _, _, a, _, _, _, a, _, _, _, a, _, _, _, T, _, T, _, T }, { _, _, _, _, _, _, _, _, _, _, _, _, _, g, _, _, _, O, _, _, _, _, _, _, _, _, _, _, _ }, { T, _, T, _, _, g, _, _, T, _, _, g, _, _, _, g, _, _, _, O, O, O, _, _, g, _, T, _, T }, { _, _, _, _, _, _, _, _, _, _, _, _, _, g, _, _, _, _, _, O, O, _, _, _, _, _, _, _, _ }, { _, T, _, _, g, _, g, _, _, _, g, _, _, _, _, g, _, _, _, _, _, _, _, O, O, _, _, T, _ }, { _, _, _, _, _, _, _, _, g, _, _, _, _, _, _, _, _, _, O, O, _, _, _, _, _, _, _, _, _ }, { T, _, a, _, _, _, _, _, _, _, _, _, O, O, O, O, _, _, _, O, _, _, O, _, g, _, a, _, T }, { _, _, _, _, _, _, O, O, O, _, _, _, O, O, O, O, O, O, _, _, _, _, _, _, _, _, _, _, _ }, { _, T, _, _, _, O, O, O, O, O, _, _, _, O, O, O, O, O, O, O, O, O, _, _, _, _, _, T, _ }, { _, _, _, _, _, O, O, O, O, O, O, O, _, _, _, O, O, O, O, O, O, O, O, O, O, _, _, _, _ }, { T, _, a, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, _, _, T }, { _, _, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, g, _, _, _ }, { _, T, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, _, T, _ }, { _, _, _, _, _, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, _, _, _ }, { T, _, _, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, _, T }, { _, _, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, _, _ }, { _, T, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, T, _ }, { _, _, _, _, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, _, _, _, _, _ }, { T, _, a, _, O, O, O, O, O, O, O, O, O, _, _, O, O, O, O, O, O, O, O, _, _, _, a, _, T }, { _, _, _, _, _, O, O, O, O, _, _, _, _, _, _, O, O, O, O, O, O, O, _, _, _, _, _, _, _ }, { _, T, _, _, _, _, _, _, _, _, _, _, _, _, O, O, O, O, O, O, O, O, O, O, _, _, _, T, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, O, O, O, O, O, O, O, O, O, _, _, _, _, _, _ }, { T, _, T, _, _, _, _, _, _, T, _, _, _, _, _, _, O, O, O, _, O, _, _, _, _, _, T, _, T }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { T, _, T, _, T, _, _, _, a, _, _, _, _, _, _, _, _, _, _, _, a, _, _, _, T, _, T, _, T }, { _, _, _, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, _, _, _ }, { T, _, T, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, _, _, T, _, T, _, T }, }, { { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, O, O, O, O, _, _, _, _, _, _, _, _, _, O, O, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, O, O, O, _, _, O, _, _, _, _, _, _, O, O, O, O, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, O, _, _, _, _, _, _, _, a, _, O, O, O, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, a, _, _, _, _, _, _, _, O, O, O, O, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, O, O, O, O, _, _, _, O, O, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, O, O, O, O, O, O, O, O, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, O, O, O, O, O, O, O, O, O, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, T, _, _, _, O, O, O, O, O, O, O, _, _, _, _, _, T, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, O, O, O, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, p, _, _, _, _, _, _, _, _, _, _, t, t, t, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, O, O, t, t, t, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, O, O, t, t, t, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, }, { { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, O, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, O, O, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, O, O, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, O, O, O, _, O, O, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, O, O, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, { _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ }, }, }; for (int iy = 0; iy < levelData.GetLength(0); iy++) { for (int ix = 0; ix < levelData.GetLength(1); ix++) { for (int iz = 0; iz < levelData.GetLength(2); iz++) { if (ix < level.GetXWidth() && iz < level.GetZWidth() && iy + 1 < level.GetHeight()) { level.Set(levelData[iy, ix, iz], ix, iy + 1, iz); } } } } }
public void Set(EntityID.ID id, int x, int y, int z) { levelData[x, y, z] = id; }