public void MoveObject(GameObject objToMove) { if (objToMove.GetComponent <Player>()) { player.TransplantPlayer(moveToPos); Cache.fadeToBlack.FadeOutScreen(); } else if (objToMove.GetComponent <PushableTile>()) { PushableTile push = objToMove.GetComponent <PushableTile>(); push.Transplant(moveToPos); } }
public static void ParseRoomCSVFile() { string cwdPath = Directory.GetCurrentDirectory(); string roomPath = ""; if (roomNumber < storage.singleDigitRoomCap) { roomPath = @"0" + (roomNumber.ToString()) + ".csv"; } else { roomPath = @"" + (roomNumber.ToString()) + ".csv"; } cwdPath = cwdPath.Replace(@"\bin\Debug\netcoreapp3.1", @"\Classes\Level\RoomCSV"); cwdPath = Path.Combine(cwdPath, roomPath); string[] lines = System.IO.File.ReadAllLines(cwdPath); foreach (string line in lines) { string[] segments = line.Split(new string[] { "," }, StringSplitOptions.None); Vector2 position = new Vector2(0, 0); switch (segments[0]) { case "Block": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); BlockTile block; tiles.Add(block = new BlockTile(game, new TileSpriteFactory(game), position)); block.drawLocation = position; break; case "Event": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); EventTile eventTile; tiles.Add(eventTile = new EventTile(game, new TileSpriteFactory(game), position)); eventTile.drawLocation = position; break; case "Pushable": position = utility.GetPushablePosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); PushableTile pushable; tiles.Add(pushable = new PushableTile(game, new TileSpriteFactory(game), position)); pushable.drawLocation = position; break; case "Stair": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); TPTile stair; tiles.Add(stair = new TPTile(game, new TileSpriteFactory(game), position)); stair.drawLocation = position; break; case "Compass": position = utility.GetBlockSecondaryItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Compass compass; items.Add(compass = new Compass(game, new ItemSpriteFactory(game), position)); compass.drawLocation = position; break; case "Heart": position = utility.GetHeartPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Heart heart; items.Add(heart = new Heart(game, new ItemSpriteFactory(game), position)); heart.position = position; break; case "Key": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Key key; items.Add(key = new Key(game, new ItemSpriteFactory(game), position)); key.position = position; break; case "BlueRupee": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); BlueRupee blueRupee; items.Add(blueRupee = new BlueRupee(game, new ItemSpriteFactory(game), position)); blueRupee.position = position; break; case "Bomb": position = utility.GetBombPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Bomb bomb; items.Add(bomb = new Bomb(game, new ItemSpriteFactory(game), position)); bomb.position = position; break; case "Boomerang": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Boomerang boomerang; items.Add(boomerang = new Boomerang(game, new ItemSpriteFactory(game), position)); boomerang.position = position; break; case "Bow": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Bow bow; items.Add(bow = new Bow(game, new ItemSpriteFactory(game), position)); bow.position = position; break; case "HeartContainer": position = utility.GetHeartContainerPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); HeartContainer heartContainer; items.Add(heartContainer = new HeartContainer(game, new ItemSpriteFactory(game), position)); heartContainer.position = position; break; case "Map": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Map map; items.Add(map = new Map(game, new ItemSpriteFactory(game), position)); map.position = position; break; case "Fairy": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); Fairy fairy; items.Add(fairy = new Fairy(game, new ItemSpriteFactory(game), position)); fairy.position = position; break; case "Triforce": position = utility.GetTriforceOldPosition(windowWidth, windowHeightFloor); Triforce triforce; items.Add(triforce = new Triforce(game, new ItemSpriteFactory(game), position)); triforce.position = position; break; case "YellowRupee": position = utility.GetCommonItemPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); YellowRupee yellowRupee; items.Add(yellowRupee = new YellowRupee(game, new ItemSpriteFactory(game), position)); yellowRupee.position = position; break; case "Goriya": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyGoriya(game, position)); break; case "Aquamentus": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyAquamentus(game, position)); break; case "Roshi": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyRoshi(game, position)); break; case "BladeTrap": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyBladeTrap(game, position, new Vector2(storage.bladeTrapX, storage.bladeTrapY), game.link)); break; case "Gel": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemySlime(game, position)); break; case "Keese": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyKeese(game, position)); break; case "Stalfos": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyStalfos(game, position)); break; case "Wallmaster": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyWallmaster(game, position)); break; case "Redead": position = utility.GetEnemyPosition(windowWidthFloor, windowHeightFloor, float.Parse(segments[2]), float.Parse(segments[1])); enemies.Add(new EnemyRedead(game, position)); break; case "FogOfWar": enemies.Add(new FogOfWar(game)); break; default: break; } } }