/// <summary>
    /// 장착된 무기로 무기 슬롯 변경
    /// </summary>
    public void ChangedEquipSlot(Player player)
    {
        this.player = player;

        SpriteSet spriteSet = GameManager.Instance.SpriteSetManager;

        // 보조무기 장착 여부 확인
        if (player.SubGun == null)
        {
            equipSlots[0].sprite = spriteSet.GetSprite(SpriteSet.BLANK_SPRITE_NAME);
        }
        else
        {
            equipSlots[0].sprite = player.SubGun.GunSpirteImage;
        }


        // 주무기 장착 여부 확인
        if (player.MainGun == null)
        {
            equipSlots[1].sprite = spriteSet.GetSprite(SpriteSet.BLANK_SPRITE_NAME);
        }
        else
        {
            equipSlots[1].sprite = player.MainGun.GunSpirteImage;
        }

        // 보유중인 수류탄 tnt 갯수 표시
        InitializeConsumableItemText(player.GrenadeCount, player.TntCount);
    }
Example #2
0
 public SpriteSetEntry(SpriteSet CurrentSet)
 {
     InitializeComponent();
     this._CurrentSet   = CurrentSet;
     this.Name_Box.Text = CurrentSet.Name;
     UpdateItems();
 }
Example #3
0
        void IndexBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            CurrentSprites = new SpriteSet();
            int num = (IndexBox.Items.IndexOf(IndexBox.Text) * 6);

            for (int i = 0; i < 4; i++)
            {
                if (nr.fe[num + i].Size == 6448)
                {
                    nr.OpenEntry(num + i);
                    CurrentSprites.Sprites[i] = MakeImage(nr.fs);
                    nr.Close();
                }
            }
            if (nr.fe[num + 4].Size == 72)
            {
                nr.OpenEntry(num + 4);
                CurrentSprites.Normal = SetPal(nr.fs);
                nr.Close();
            }
            if (nr.fe[num + 5].Size == 72)
            {
                nr.OpenEntry(num + 5);
                CurrentSprites.Shiny = SetPal(nr.fs);
                nr.Close();
            }
            LoadImages();
            OpenPngs.Enabled = true;
        }
Example #4
0
 private void initTutorial(ShaderManager shaders)
 {
     this.Tutorial = SpriteSet <UVColorVertexData> .FromJsonFile(
         "data/gfx/sprites/tutorial.json", s => new Sprite2DGeometry(s),
         shaders.UVColor, new SurfaceSetting[] { this.screenModelview, this.gameProjection, SurfaceBlendSetting.PremultipliedAlpha },
         SurfaceManager.premultiplyTexture, true);
 }
Example #5
0
 // Start is called before the first frame update
 void Start()
 {
     SetStartPositionAndScale();
     sriteset = GetComponent <SpriteSet>();
     sriteset.SetSprite(Random.Range(1, 2));
     speed = Random.Range(0.001f, 0.005f);
 }
        public Chart2DSpriteContainer(SpriteSet <UVColorVertexData> sprites, FontGeometry fontGeo,
                                      VertexSurface <FastChart2DBarVertex> fastBarSurface = null)
        {
            this.line  = (Sprite2DGeometry)sprites["line"].Geometry;
            this.point = (Sprite2DGeometry)sprites["point"].Geometry;

            this.surface = sprites.Surface;

            this.quadUV = sprites["quad"].Geometry.UV;

            this.font = fontGeo;

            this.ThinLineWidth  = 0.015f;
            this.ThickLineWidth = 0.03f;
            this.SmallPointSize = 0.03f;
            this.LargePointSize = 0.1f;
            this.Color          = Color.DeepPink;

            if (fastBarSurface != null)
            {
                this.fastBarSurface = fastBarSurface;
                this.fastBarSurface.AddSettings(sprites.Surface.Settings);
                this.fastBarSurface.AddSettings(
                    new Vector2Uniform("uv01", this.quadUV.TopLeft),
                    new Vector2Uniform("uv11", this.quadUV.TopRight),
                    new Vector2Uniform("uv00", this.quadUV.BottomLeft),
                    new Vector2Uniform("uv10", this.quadUV.BottomRight)
                    );
            }
        }
Example #7
0
    public int AddSpriteSet(int index, SpriteSet spr)
    {
        if (spr == null)
        {
            Debug.Log("sprites is null");
            return(-1);
        }

        if (spr.name == "")
        {
            Debug.Log("name is empty");
            return(-1);
        }

        List <SpriteSet> list = FindListFromIndex(index);

        if (list != null)
        {
            list.Add(spr);
        }

        EditorUtility.SetDirty(this);

        return(list.Count - 1);
    }
        public Chart2DSpriteContainer(SpriteSet<UVColorVertexData> sprites, FontGeometry fontGeo,
            VertexSurface<FastChart2DBarVertex> fastBarSurface = null)
        {
            this.line = (Sprite2DGeometry)sprites["line"].Geometry;
            this.point = (Sprite2DGeometry)sprites["point"].Geometry;

            this.surface = sprites.Surface;

            this.quadUV = sprites["quad"].Geometry.UV;

            this.font = fontGeo;

            this.ThinLineWidth = 0.015f;
            this.ThickLineWidth = 0.03f;
            this.SmallPointSize = 0.03f;
            this.LargePointSize = 0.1f;
            this.Color = Color.DeepPink;

            if (fastBarSurface != null)
            {
                this.fastBarSurface = fastBarSurface;
                this.fastBarSurface.AddSettings(sprites.Surface.Settings);
                this.fastBarSurface.AddSettings(
                    new Vector2Uniform("uv01", this.quadUV.TopLeft),
                    new Vector2Uniform("uv11", this.quadUV.TopRight),
                    new Vector2Uniform("uv00", this.quadUV.BottomLeft),
                    new Vector2Uniform("uv10", this.quadUV.BottomRight)
                    );
            }
        }
    Player player;                                // 참조할 플레이어 모델

    /// <summary>
    /// 소모품 아이템 갯수 텍스트 표시 함수
    /// </summary>
    /// <param name="grenadeCount">표시할 수류탄 갯수</param>
    /// <param name="tntCount">표시할 tnt갯수</param>
    public void InitializeConsumableItemText(int grenadeCount, int tntCount)
    {
        SpriteSet spriteSet = GameManager.Instance.SpriteSetManager;

        // 수류탄 장착 여부 확인
        if (player.GrenadeCount == 0)
        {
            equipSlots[2].sprite  = spriteSet.GetSprite(SpriteSet.BLANK_SPRITE_NAME);
            grenadeCountText.text = "";
        }
        else
        {
            equipSlots[2].sprite  = spriteSet.GetSprite(AcquireType.GRENADE_ITEM.ToString());
            grenadeCountText.text = grenadeCount.ToString();
        }

        // tnt 장착 여부 확인
        if (player.TntCount == 0)
        {
            equipSlots[3].sprite = spriteSet.GetSprite(SpriteSet.BLANK_SPRITE_NAME);
            tntCountText.text    = "";
        }
        else
        {
            equipSlots[3].sprite = spriteSet.GetSprite(AcquireType.TNT_ITEM.ToString());;
            tntCountText.text    = tntCount.ToString();
        }
    }
Example #10
0
File: Item.cs Project: Ramazoid/Ram
 // Start is called before the first frame update
 void Start()
 {
     SetStartPositionAndScale();
     sriteset = GetComponent <SpriteSet>();
     sriteset.SetSprite();
     speed = Random.Range(0.001f, 0.05f);
     game  = GameObject.FindObjectOfType <Game>();
 }
Example #11
0
 public SpriteSet(SpriteSet other)
 {
     normal   = other.normal;
     disabled = other.normal;
     focused  = other.normal;
     hovered  = other.hovered;
     pressed  = other.pressed;
 }
Example #12
0
        private void AnimateSprites(Graphics g, SpriteSet spriteSet, long timediffms)
        {
            var   sprites = spriteSet.GetSprites(this.lookingDirection == LookingDirection.Left);
            long  index   = (timediffms / spriteSet.animateDelayMs) % sprites.Count;
            Image image   = sprites[(int)index];

            g.DrawImageUnscaled(image, location);
        }
Example #13
0
        public Scene()
        {
            Entities = new EntityMap(this);
            Systems  = new SystemMap(this);
            Sprites  = new SpriteSet();
            Events   = new EventManager();

            Entities.Changed += NotifyEntityChange;
            CurrentViewport   = new CameraView();
        }
Example #14
0
 public Player(Tile startTile, SpriteSet spriteSet = SpriteSet.Blue)
 {
     draw             = true;
     alive            = true;
     BombCap          = 1;
     BombRange        = 1;
     CanKick          = false;
     this.movement    = new FloatingLocationResolver(startTile);
     LocationResolver = this.movement;
 }
Example #15
0
        public void SetIdle()
        {
            var entitySprite = GetLazy(NodeIndex.Entity);

            if (entitySpriteSet is null)
            {
                entitySpriteSet = new SpriteSet();
            }

            entitySprite.Texture = entitySpriteSet.IdleTexture;
        }
Example #16
0
        private void Button_AddSpriteSet_Click(object sender, EventArgs e)
        {
            SpriteSet NewSpriteSet = new SpriteSet("New SpriteSet");

            this._CurrentSprite.SpriteSets.Add(NewSpriteSet);
            SpriteSetEntry Entry = new SpriteSetEntry(NewSpriteSet);

            Entry.Dock = DockStyle.Top;
            EntryPanel.Controls.Add(Entry);
            Entry.BringToFront();
        }
Example #17
0
        public void SetTelegraph()
        {
            var entitySprite = GetLazy(NodeIndex.Entity);

            if (entitySpriteSet is null)
            {
                entitySpriteSet = new SpriteSet();
            }

            entitySprite.Texture = entitySpriteSet.TelegraphTexture;
        }
        public CharacterSprite(SpriteSet spriteSet)
        {
            SpriteSet = spriteSet;

            if (spriteSet.Name.ToLower() == "human")
                animationInterval = 80f;

            AnimationSpeedModifier = 100;
            if (spriteSet.Animations.ContainsKey(AnimationType.Walking))
                Initialize(spriteSet.Animations[AnimationType.Walking]);
        }
Example #19
0
    [SerializeField] BuffData[] buffDatas;  // 버프 데이터 배열

    private void Start()
    {
        // 버프 및 무기 이미지 스프라이트 설정
        SpriteSet spriteSet = GameManager.Instance.SpriteSetManager;

        for (int i = 0; i < buffDatas.Length; i++)
        {
            buffDatas[i].weaponIcon = spriteSet.GetSprite(buffDatas[i].weaponStyle.ToString());
            buffDatas[i].buffIcon   = spriteSet.GetSprite(buffDatas[i].buffType.ToString());
        }
    }
Example #20
0
        public UiSystem(IRenderer renderer)
        {
            _levelSetup = new GameSetup.LevelSetup();
            SpriteSet   = new SpriteSet();
            Display     = new Display(_levelSetup.MapHeight + 5, _levelSetup.MapWidth, SpriteSet);
            Inputs      = new Inputs();
            ScoreBoard  = new ScoreBoard(Display);

            _renderer = renderer;

            _uiMode = new TestMode(this);
        }
Example #21
0
        private void Ring3D(int s, int e)
        {
            int     count               = 50;
            float   pointScale          = 0.2f;
            Vector3 initialRingRotation = new Vector3(
                (float)Math.PI / 4,
                (float)Math.PI / 3,
                0
                );
            Vector3 ringRotationSpeed = new Vector3(
                0.01f,
                0.02f,
                0.03f
                );
            Vector3 ringRotation = Vector3.Zero;
            Func <float, int, Vector3> ringPattern = (float t, int i)
                                                     => Patterns.Circle3D(Vectors.Centre3D, 200, initialRingRotation, 2 * (float)Math.PI / count, t)(i);
            SpriteSet ring = layer.CreateSpriteSet(
                Sprites.Particle,
                _ => OsbOrigin.Centre,
                i => ringPattern(0, i).project(FOV).screenSpaceVector,
                count
                );

            ring.Fade(s, s + Timing.beat(s) / 2, 0, 1.0f);
            ring.Fade(e, 0);
            ring.Scale(s, 0.5);
            float spinSpeed = 2;

            for (float t = s; t < e; t += delta)
            {
                float t2    = t + delta < e ? t + delta : e;
                float spin  = spinSpeed * (t - s) / 1000.0f;
                float spin2 = spinSpeed * (t2 - s) / 1000.0f;
                ring.Move3D(
                    OsbEasing.None,
                    t, t2,
                    i => ringPattern(spin, i).rotate3D(ringRotation, Vectors.Centre3D),
                    i => ringPattern(spin2, i).rotate3D(ringRotation + ringRotationSpeed, Vectors.Centre3D),
                    FOV,
                    (_sprite, _p1, _p2) =>
                {
                    float scale1 = pointScale / _p1.normalisedVector.Length;
                    float scale2 = pointScale / _p2.normalisedVector.Length;
                    if (scale1 != scale2)
                    {
                        _sprite.Scale(t, t2, scale1, scale2);
                    }
                }
                    );
                ringRotation += ringRotationSpeed;
            }
        }
Example #22
0
        SpriteSet MakeOuterRing(int s, int e, Vector2 position, float patternRadius, float scale)
        {
            var   bitmap        = GetMapsetBitmap(Sprites.Triangle);
            float triangleWidth = bitmap.Width;

            var       hexagon   = Patterns.Circle2D(position, patternRadius, (float)-Math.PI / 3, 5 * (float)Math.PI / 6);
            SpriteSet triangles = layer.CreateSpriteSet(Sprites.Triangle, _ => OsbOrigin.Centre, hexagon, 6);

            triangles.Fade(s, e, 1.0, 1.0);
            triangles.Rotate(i => - Math.PI / 3 + i * Math.PI / 3);
            triangles.Scale(patternRadius / triangleWidth * scale);
            return(triangles);
        }
Example #23
0
        private void Particles(int s, int e)
        {
            int   count      = 50;
            float pointScale = 0.2f;
            var   pattern    = Patterns.PointCloudGlobe(Vectors.Centre.withZ(0), 500, new Random(RandomSeed));
            var   points     = new List <Vector3>();

            for (int i = 0; i < count; i++)
            {
                points.Add(pattern(i));
            }
            SpriteSet pointCloud = layer.CreateSpriteSet(
                Sprites.Particle,
                _ => OsbOrigin.Centre,
                i => points[i].project(Vectors.ScreenSize, Vectors.Centre, FOV).screenSpaceVector,
                count
                );

            pointCloud.Fade(s, s + Timing.beat(s) / 2, 0, 0.6);
            pointCloud.Fade(e, 0);
            pointCloud.Scale(s, 0.5);
            var inOutExpo = OsbEasing.InOutExpo.ToEasingFunction();

            for (float t = s; t < e; t += delta)
            {
                float t2     = t + delta < e ? t + delta : e;
                float angle  = (float)(-Math.PI / 4 * inOutExpo((t - s) / (e - s)));
                float angle2 = (float)(-Math.PI / 4 * inOutExpo((t2 - s) / (e - s)));
                pointCloud.Move3D(
                    OsbEasing.None,
                    t, t2,
                    i => points[i].rotateY(angle, Vectors.Centre3D),
                    i => points[i].rotateY(angle2, Vectors.Centre3D),
                    FOV,
                    (_sprite, _p1, _p2) =>
                {
                    float scale1 = pointScale / _p1.normalisedVector.Length;
                    float scale2 = pointScale / _p2.normalisedVector.Length;
                    if (scale1 != scale2)
                    {
                        _sprite.Scale(t, t2, scale1, scale2);
                    }
                }
                    );
            }
            foreach (var sprite in pointCloud.Sprites)
            {
                SpriteSet trail = Effects.Trail(layer, sprite, s, e, 1000.0 / 60, 0, 0, 150, true);
                trail.UseScaleOf(sprite);
            }
        }
        public void SetCurrentSprite(SpriteSet currentSpriteSet, SpriteSetConfiguration currentSpriteSetConfiguration)
        {
            CurrentSpriteSet = currentSpriteSet;
            CurrentSpriteSetConfig = currentSpriteSetConfiguration;

            if (currentSpriteSet != null)
            {
                CurrentCharacter = new Character(new CharacterSprite(currentSpriteSet));
            }
            else
            {
                CurrentCharacter = null;
            }
        }
Example #25
0
    private string GetSprite(SpriteSet set, SpriteDirection direction, bool walking)
    {
        switch (set)
        {
        case SpriteSet.NORMAL:
            return(walking ? spriteSetNormalWalk[(int)direction] : spriteSetNormal[(int)direction]);

        case SpriteSet.PAPER:
            return(walking ? spriteSetPaperWalk[(int)direction] : spriteSetPaper[(int)direction]);

        default:
            return(walking ? spriteSetNormalWalk[(int)direction] : spriteSetNormal[(int)direction]);
        }
    }
Example #26
0
        public TestMode(UiSystem uiSystem)
        {
            _display   = uiSystem.Display;
            _spriteSet = uiSystem.SpriteSet;
            _tick      = 0;

            _allSpites = new SpriteSource[10 * 32];
            for (int y = 0; y < 10; y++)
            {
                for (int x = 0; x < 32; x++)
                {
                    _allSpites[y * 32 + x] = new SpriteSource(x, y, 1);
                }
            }
        }
Example #27
0
    protected override void Subscribed()
    {
        var  samplerSource = Resolve <ISpriteSamplerSource>();
        bool isArray       = (Key.Flags & SpriteKeyFlags.UseArrayTexture) != 0;
        var  source        = Resolve <ITextureSource>();

        SpriteResources = new SpriteSet
        {
            Name         = $"RS_Sprite:{Key.Texture.Name}",
            Texture      = isArray ? source.GetDummySimpleTexture() : source.GetSimpleTexture(Key.Texture),
            TextureArray = isArray ? source.GetArrayTexture(Key.Texture) : source.GetDummyArrayTexture(),
            Sampler      = samplerSource.GetSampler(Key.Sampler),
            Uniform      = Uniform
        };
        AttachChild(SpriteResources);
    }
Example #28
0
        static Character()
        {
            List <Bitmap> standSprites = Enumerable.Range(1, 6)
                                         .Select(i => string.Format(@"Sprites\stand{0}.png", i))
                                         .Select(filename => new Bitmap(Extensions.GetPath(filename)))
                                         .ToList();

            standing = new SpriteSet(standSprites, 1000);

            List <Bitmap> runningSprites = Enumerable.Range(1, 20)
                                           .Select(i => string.Format(@"Sprites\run{0}.png", i))
                                           .Select(filename => new Bitmap(Extensions.GetPath(filename)))
                                           .ToList();

            running = new SpriteSet(runningSprites, 1000);
        }
Example #29
0
        void Section4_2()
        {
            // triangle pattern
            int     s                 = 63468;
            int     e                 = 63939;
            float   patternRadius     = 300;
            float   scale             = 0.6f;
            float   relativeRingScale = 0.5f;
            Vector2 patternPosition   = Vectors.Centre + Vectors.polar(-Math.PI / 6, patternRadius);

            SpriteSet outer = MakeOuterRing(s, e, patternPosition, patternRadius, scale);
            SpriteSet inner = MakeInnerRing(s, e, patternPosition, patternRadius * relativeRingScale, scale);

            SpriteSet extension = layer.CreateSpriteSet();

            for (int i = 0; i < 6; i++)
            {
                var ring = Patterns.Circle2D(
                    patternPosition,
                    patternRadius * 3,
                    (float)-Math.PI / 3,
                    5 * (float)Math.PI / 6
                    );
                extension += MakeOuterRing(s, e, ring(i), patternRadius, scale);
            }
            for (int i = 0; i < 6; i++)
            {
                var ring = Patterns.Circle2D(
                    patternPosition,
                    patternRadius * (float)Math.Sqrt(3),
                    (float)-Math.PI / 3,
                    4 * (float)Math.PI / 6
                    );
                extension += MakeInnerRing(s, e, ring(i), patternRadius * relativeRingScale, scale);
            }

            SpriteSet trianglePattern = inner + outer + extension;

            float zoomScale = 0.9f;
            float cutScale  = 0.9f;

            //trianglePattern.MoveRelative(s, Vector2.Zero);
            trianglePattern.Scale(OsbEasing.None, s, s + 3 * Timing.beat(s) / 2, cutScale, cutScale * zoomScale, Vectors.Centre);
            //trianglePattern.MoveRelative(OsbEasing.None, s, s + 3 * Timing.beat(s) / 2, Vector2.Zero, Vectors.down(patternRadius));
        }
Example #30
0
        public GeometryManager(SurfaceManager surfaces)
        {
            this.Primitives        = new PrimitiveGeometry(surfaces.Primitives);
            this.PrimitivesOverlay = new PrimitiveGeometry(surfaces.PrimitivesOverlay);

            var font = Font.FromJsonFile("data/fonts/inconsolata.json");

            this.Text = new FontGeometry(surfaces.Text, font)
            {
                SizeCoefficient = new Vector2(1, -1)
            };

            this.Buildings = new BuildingGeometry(surfaces.Buildings);

            this.sprites = surfaces.Sprites;

            this.NavMesh = new PrimitiveGeometry(surfaces.NavMesh);
        }
Example #31
0
        public HudGeometry(SpriteSet <UVColorVertexData> sprites)
        {
            this.barStart  = sprites["barStart"].Geometry as Sprite2DGeometry;
            this.barEnd    = sprites["barEnd"].Geometry as Sprite2DGeometry;
            this.barMiddle = sprites["barMiddle"].Geometry as Sprite2DGeometry;

            this.barThinStart  = sprites["barThinStart"].Geometry as Sprite2DGeometry;
            this.barThinEnd    = sprites["barThinEnd"].Geometry as Sprite2DGeometry;
            this.barThinMiddle = sprites["barThinMiddle"].Geometry as Sprite2DGeometry;

            this.barFilledStart  = sprites["barFilledStart"].Geometry as Sprite2DGeometry;
            this.barFilledEnd    = sprites["barFilledEnd"].Geometry as Sprite2DGeometry;
            this.barFilledMiddle = sprites["barFilledMiddle"].Geometry as Sprite2DGeometry;

            this.square       = sprites["square"].Geometry as Sprite2DGeometry;
            this.squareFilled = sprites["squarefilled"].Geometry as Sprite2DGeometry;

            this.surface = sprites.Surface;
        }
Example #32
0
    // parses unitData to set own variables
    public void LoadData()
    {
        // set parameters
        portrait        = StartData.portrait;
        unitName        = StartData.unitName;
        sprites         = StartData.sprites;
        health          = StartData.health;
        moveSpeed       = StartData.moveSpeed;
        damageReduction = 0;

        // convert the unitData's list of ability enums into real abilities, and store them
        AvailableAbilities = AbilityDatabase.GetAbilities(StartData.abilities);

        // positional setup
        ChangeDirection(Direction.S);
        if (StartData.moveSoundEventName != "" || StartData.moveSoundEventName == null)
        {
            moveSoundEvent = FMODUnity.RuntimeManager.CreateInstance(StartData.moveSoundEventName);
        }
        if (!moveSoundEvent.isValid())
        {
            Debug.LogWarning("Move Event for " + unitName + " invalid.");
        }

        if (StartData.deathSoundEventName != "" || StartData.deathSoundEventName == null)
        {
            deathSoundEvent = FMODUnity.RuntimeManager.CreateInstance(StartData.deathSoundEventName);
        }
        if (!deathSoundEvent.isValid())
        {
            Debug.LogWarning("Death Event for " + unitName + " invalid.");
        }

        if (StartData.selectSoundEventName != "" || StartData.selectSoundEventName == null)
        {
            selectSoundEvent = FMODUnity.RuntimeManager.CreateInstance(StartData.selectSoundEventName);
        }
        if (!moveSoundEvent.isValid())
        {
            Debug.LogWarning("Select Event for " + unitName + " invalid.");
        }
    }
Example #33
0
        public static void ProcessFile(string path)
        {
            string destinationFileName = path;

            if (path.EndsWith(".spr"))
            {
                destinationFileName = Path.ChangeExtension(destinationFileName, "bin");
                SpriteSet spr = BinaryFile.Load <SpriteSet>(path);
                foreach (Sprite sprite in spr.Sprites)
                {
                    sprite.ResolutionMode = ResolutionMode.HDTV720;
                    sprite.Name           = "MD_IMG";
                }
                spr.Format                = BinaryFormat.DT;
                spr.TextureSet.Format     = BinaryFormat.DT;
                spr.Endianness            = Endianness.Little;
                spr.TextureSet.Endianness = Endianness.Little;
                spr.Save(destinationFileName);
            }
        }
    public static void ApplySprites(SpriteSet s)
    {
        SceneManager.SetActiveScene(SceneManager.GetSceneAt(SceneManager.sceneCount - 1));

        foreach (CustomMapObject g in GameObject.FindObjectsOfType<CustomMapObject>())
        {
            switch (g.identifier)
            {
                case "item_box":
                    g.transform.FindChild("Sprite").GetComponent<SpriteRenderer>().sprite = s.item_box;
                    break;
                //TODO finish for all items
                case "lava":
                    bool[] hits = findHits("lava", g.transform.position, s.physicalTileLayers);
                    // 0 1 2
                    // 3   4
                    // 5 6 7
                    GameObject finalGameObject = s.lava;
                    if (hits[1] && hits[2] && hits[3] && hits[4] && hits[5] && hits[6] && hits[7]) finalGameObject = s.lava;
                    else if (hits[1] && hits[2] && hits[4] && hits[6] && hits[7]) finalGameObject = s.lavaLeft;
                    else if (hits[1] && hits[0] && hits[3] && hits[5] && hits[6]) finalGameObject = s.lavaRight;
                    else if (hits[0] && hits[2] && !hits[6]) finalGameObject = s.lavaBottom;
                    else if (hits[5] && hits[7] && !hits[1]) finalGameObject = s.lavaTop;
                    else if (hits[6] && hits[4]) finalGameObject = s.lavaLeft;
                    else if (hits[3] && hits[6]) finalGameObject = s.lavaRight;
                    else if (hits[1] && hits[4]) finalGameObject = s.lavaLeft;
                    else if (hits[1] && hits[3]) finalGameObject = s.lavaRight;

                    Vector3 tmpPos = g.transform.position;
                    Quaternion tmpRot = g.transform.rotation;
                    GameObject.Destroy(g.gameObject);
                    GameObject newG = (GameObject)GameObject.Instantiate(finalGameObject, tmpPos, tmpRot);

                    //Debug.Log(g.name + " " + g.transform.position);
                    //for (int i = 0; i < hits.Length; i++) Debug.Log(hits[i]);
                    Sprite finalSprite = s.errorSprite;

                    if (hits[1] && hits[2] && hits[3] && hits[4] && hits[5] && hits[6] && hits[7]) finalSprite = s.lava_mid_mid;
                    else if (hits[1] && hits[2] && hits[4] && hits[6] && hits[7]) finalSprite = s.lava_left;
                    else if (hits[1] && hits[0] && hits[3] && hits[5] && hits[6]) finalSprite = s.lava_right;
                    else if (hits[0] && hits[2] && !hits[6]) finalSprite = s.lava_bottom_mid;
                    else if (hits[5] && hits[7] && !hits[1]) finalSprite = s.lava_top_mid;
                    else if (hits[6] && hits[4]) finalSprite = s.lava_top_left;
                    else if (hits[3] && hits[6]) finalSprite = s.lava_top_right;
                    else if (hits[1] && hits[4]) finalSprite = s.lava_bottom_left;
                    else if (hits[1] && hits[3]) finalSprite = s.lava_bottom_right;
                    newG.transform.FindChild("Lava Sprite").GetComponent<SpriteRenderer>().sprite = finalSprite;
                    break;
                case "floor":

                    //TODO include thin plates(1 thin, horiz = thin, vert = walls)
                    bool[] hits1 = findHits("floor", g.transform.position, s.physicalTileLayers);
                    // 0 1 2
                    // 3   4
                    // 5 6 7
                    Sprite finalSprite1 = s.errorSprite;
                    //Debug.Log(g.name + " " + g.transform.position);
                    //for (int i = 0; i < hits1.Length; i++) Debug.Log(hits1[i]);

                    if (hits1[1] && hits1[2] && hits1[3] && hits1[4] && hits1[5] && hits1[6] && hits1[7]) finalSprite1 = s.floor_mid_mid;
                    else if (hits1[1] && hits1[2] && hits1[4] && hits1[6] && hits1[7]) finalSprite1 = s.floor_left;
                    else if (hits1[1] && hits1[0] && hits1[3] && hits1[5] && hits1[6]) finalSprite1 = s.floor_right;
                    else if (hits1[0] && hits1[2] && !hits1[6]) finalSprite1 = s.floor_bottom_mid;
                    else if (hits1[5] && hits1[7] && !hits1[1]) finalSprite1 = s.floor_top_mid;
                    else if (hits1[6] && hits1[4]) finalSprite1 = s.floor_top_left;
                    else if (hits1[3] && hits1[6]) finalSprite1 = s.floor_top_right;
                    else if (hits1[1] && hits1[4]) finalSprite1 = s.floor_bottom_left;
                    else if (hits1[1] && hits1[3]) finalSprite1 = s.floor_bottom_right;
                    else if (hits1[4] && hits1[3]) finalSprite1 = s.floor_thin_middle;
                    else if (hits1[3]) finalSprite1 = s.floor_thin_right;
                    else if (hits1[4]) finalSprite1 = s.floor_thin_left;
                    else if (hits1[1] && hits1[6]) finalSprite1 = s.wall_mid;
                    else if (hits1[1]) finalSprite1 = s.wall_bottom;
                    else if (hits1[6]) finalSprite1 = s.wall_top;
                    if (!(hits1[1]  || hits1[3] || hits1[4] || hits1[6])) finalSprite1 = s.floor_thin_middle;

                    g.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = finalSprite1;
                    break;
                case "unsafe_plat":
                    g.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = s.unsafe_plat;
                    break;
                case "shootable_plat":
                    g.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = s.shootable_platform;
                    g.GetComponent<ShootableItem>().gibs = s.boxGibs;
                    break;
                case "bridge_sprite":
                    for (int i = 0; i < g.transform.childCount; i++)
                    {
                        g.transform.GetChild(i).GetChild(0).GetComponent<SpriteRenderer>().sprite = s.bridge_sprite;
                    }
                    break;
                case "spike":
                    for (int i = 0; i < g.transform.childCount; i++)
                    {
                        g.transform.GetChild(i).GetComponent<SpriteRenderer>().sprite = s.spike;
                    }
                    break;
                case "trampoline":
                    g.transform.FindChild("GameObject").GetComponent<SpriteRenderer>().sprite = s.trampoline;
                    break;
                default:
                    break;
            }
            //get sprite, change according to the spriteset passed
        }
        SceneManager.SetActiveScene(SceneManager.GetSceneAt(0));
    }
        private void btnNewSprite_Click(object sender, EventArgs e)
        {
            SpriteSet sprite = new SpriteSet();
            sprite.Name = "Novo";
            Editor.SpriteCollection.Add(sprite);

            LoadItems(lbxSprites, Editor.SpriteCollection);
        }