Exemple #1
0
    public static void ImportWater(EntityManager em, EntityArchetype waterArchetype, InitializeSettings initSettings)
    {
        var waterEntity = em.CreateEntity(waterArchetype);

        em.SetComponentData(waterEntity, initSettings.waterStats.position);
        em.SetComponentData(waterEntity, initSettings.waterStats.scale);
        em.SetComponentData(waterEntity, initSettings.waterStats.rotation);
        em.AddSharedComponentData(waterEntity, initSettings.waterStats.render);
    }
Exemple #2
0
    public static void InitializeWithScene()
    {
        initSettings  = InitializeSettings.LoadFromResources();
        entityManager = World.Active.GetOrCreateManager <EntityManager>();

        LevelGenerator.ImportWater(entityManager, waterArchetype, initSettings);
        LevelGenerator.ImportMap(entityManager, blockArchetype, initSettings);

        GameObjectsGenerator.ImportPlayer(entityManager, playerArchetype, initSettings);
        GameObjectsGenerator.ImportEnemy(entityManager, enemyArchetype, initSettings);
        GameObjectsGenerator.ImportItem(entityManager, itemArchetype, initSettings);
    }
    public static void ImportItem(EntityManager em, EntityArchetype itemArchetype, InitializeSettings initSettings)
    {
        var itemEntity = em.CreateEntity(itemArchetype);

        em.SetComponentData(itemEntity, initSettings.itemStats.position);
        em.SetComponentData(itemEntity, initSettings.itemStats.scale);
        em.SetComponentData(itemEntity, initSettings.itemStats.rotation);
        em.SetComponentData(itemEntity, new AABBCollider {
            Size = initSettings.itemStats.aabbcollider
        });
        em.SetComponentData(itemEntity, new RigidbodyComponent {
            Mass = initSettings.itemStats.rigidbody
        });
        em.AddSharedComponentData(itemEntity, initSettings.itemStats.render);
    }
Exemple #4
0
    /// <summary>
    /// Методы Добавления объектов мира
    /// </summary>
    /// <param name="em"></param>
    /// <param name="blockArchetype"></param>
    /// <param name="initSettings"></param>

    #region // Метод импорта карты ImportMap();
    public static void ImportMap(EntityManager em, EntityArchetype blockArchetype, InitializeSettings initSettings)
    {
        int levelLength = initSettings.levelLength;
        int levelHeight = initSettings.levelHeight;
        int k           = 0;

        Position             startPosition = initSettings.blockStats.position;
        Position             spawnPosition;
        Scale                scale       = initSettings.blockStats.scale;
        MeshInstanceRenderer renderBlock = initSettings.blockStats.render;


        NativeArray <Entity> sector = new NativeArray <Entity>(BlocksCount(levelLength, levelHeight), Allocator.Temp);

        bool[] sectorStatus = new bool[BlocksCount(levelLength, levelHeight)];
        for (int i = 0; i < BlocksCount(levelLength, levelHeight); i++)
        {
            sectorStatus[i] = false;
        }

        em.CreateEntity(blockArchetype, sector);
        for (int _y = 0; _y < levelHeight; _y++)
        {
            for (int _z = 0; _z < levelLength; _z++)
            {
                for (int _x = 0; _x < levelLength; _x++)
                {
                    spawnPosition = NextPosition(_x, _y, _z, scale, startPosition);
                    em.SetComponentData(sector[k], spawnPosition);
                    em.SetComponentData(sector[k], scale);
                    k = AddSector(em, sector[k], scale, renderBlock, levelLength, _y, k, sectorStatus);
                }
            }
        }
        Debug.Log("K: " + k);
        sector.Dispose();
    }
    public static void ImportEnemy(EntityManager em, EntityArchetype enemyArchetype, InitializeSettings initSettings)
    {
        var enemyEntity = em.CreateEntity(enemyArchetype);

        em.SetComponentData(enemyEntity, initSettings.enemyStats.position);
        em.SetComponentData(enemyEntity, initSettings.enemyStats.scale);
        em.SetComponentData(enemyEntity, initSettings.enemyStats.rotation);
        em.SetComponentData(enemyEntity, new AABBCollider {
            Size = initSettings.playerStats.aabbcollider
        });
        em.SetComponentData(enemyEntity, new RigidbodyComponent {
            Mass = initSettings.playerStats.rigidbody
        });
        em.SetComponentData(enemyEntity, new Velocity {
            Value = initSettings.playerStats.velocity
        });
        em.SetComponentData(enemyEntity, new Health {
            Value = initSettings.playerStats.health
        });
        em.SetComponentData(enemyEntity, new Damage {
            Value = initSettings.playerStats.damage
        });
        em.AddSharedComponentData(enemyEntity, initSettings.enemyStats.render);
    }
Exemple #6
0
    public void ReLoadScene()
    {
        EntityManager      em           = World.Active.GetOrCreateManager <EntityManager>();
        InitializeSettings initSettings = InitializeSettings.LoadFromResources();

        EntityArchetype playerArchetype;
        EntityArchetype enemyArchetype;
        EntityArchetype itemArchetype;
        EntityArchetype blockArchetype;
        EntityArchetype waterArchetype;


        int levelLength             = initSettings.levelLength;
        int levelHeight             = initSettings.levelHeight;
        NativeArray <Entity> sector = new NativeArray <Entity>(500, Allocator.Temp);

        sector = em.GetAllEntities(Allocator.Temp);
        for (int i = 0; i < sector.Length; i++)
        {
            em.DestroyEntity(sector[i]);
        }

        playerArchetype = ObjectsEntityFactory.CreatePlayerArchetype(em);
        enemyArchetype  = ObjectsEntityFactory.CreateEnemyArchetype(em);
        itemArchetype   = ObjectsEntityFactory.CreateItemArchetype(em);
        blockArchetype  = ObjectsEntityFactory.CreateBlockArchetype(em);
        waterArchetype  = ObjectsEntityFactory.CreateWaterArchetype(em);

        LevelGenerator.ImportWater(em, waterArchetype, initSettings);

        LevelGenerator.ImportMap(em, blockArchetype, initSettings);

        GameObjectsGenerator.ImportPlayer(em, playerArchetype, initSettings);
        GameObjectsGenerator.ImportEnemy(em, enemyArchetype, initSettings);
        GameObjectsGenerator.ImportItem(em, itemArchetype, initSettings);
    }