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);
            }
        }
    }
Exemple #4
0
 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);
                    }
                }
            }
        }
    }
Exemple #8
0
 public void Set(EntityID.ID id, int x, int y, int z)
 {
     levelData[x, y, z] = id;
 }