public static void RLCreateEffect(this EcsWorld world, Vector2 position, EffectPreset effectPreset)
        {
            var go = VExt.LayoutSpriteObject(ObjData.r_PrefabSprite, position, ObjData.t_GameObjectsOther, SortingLayer.Effect.ToString(), effectPreset.spriteSingle);
            var e  = world.NewEntityWithGameObject(go);

            e.Set <EffectComponent>().Duration = effectPreset.duration;
        }
        public static EcsEntity RLNewLevelObject(this EcsWorld world, CollectingItemPreset preset, Vector2 pos)
        {
            var go = VExt.NewGameObject(preset.GameObject, pos);
            var e  = world.NewEntityWithGameObject(go, false);
            var c  = e.Set <CollectItemComponent>();

            c.Spell = preset.Spell;
            return(e);
        }
        public static void RLCreateEnemy(this EcsWorld world, Vector2 position, EnemyPreset enemyPreset)
        {
            var go = VExt.LayoutAnimationObject(ObjData.r_PrefabPhysicsAnimation, position, enemyPreset.PresetName, ObjData.t_GameObjectsRoot, SortingLayer.Character.ToString(), enemyPreset.Animation);
            var e  = world.NewEntityWithGameObject(go, true);

            e.Set <EnemyComponent>();
            var data = e.Set <NPCDataSheetComponent>();

            data.Stats           = new NPCStats(enemyPreset);
            data.PrimaryWeapon   = new NPCWeapon(enemyPreset.PrimaryWeaponItem, new WB_DamageOnContact());
            data.SecondaryWeapon = new NPCWeapon(enemyPreset.PrimaryWeaponItem, new WB_DamageOnContact());
            data.StatusEffects   = new List <StatusEffect>();
        }
        public static EcsEntity RLNewLevelObject(this EcsWorld world, LevelTilePreset preset, Vector2 pos)
        {
            var go = VExt.NewGameObject(preset.GameObject, pos);
            var e  = world.NewEntityWithGameObject(go, false);

            if (preset.Obstacle)
            {
                e.Set <ObstacleComponent>();
            }
            if (preset.ExitPoint)
            {
                e.Set <ExitPointComponent>();
            }

            return(e);
        }
        public static EcsEntity RLNewLevelObject(this EcsWorld world, PlayerPreset preset, Vector2 pos)
        {
            var go = VExt.NewGameObject(preset.GameObject, pos);
            var e  = world.NewEntityWithGameObject(go, false);

            e.Set <PlayerComponent>();
            var data = e.Set <NPCDataSheetComponent>();

            data.Stats = Service <NPCDataSheet> .Get().NPCStats;

            data.PrimaryWeapon = Service <NPCDataSheet> .Get().PriamaryWeapon;

            data.SecondaryWeapon = Service <NPCDataSheet> .Get().SecondaryWeapon;

            data.StatusEffects = new List <StatusEffect>();
            return(e);
        }