private void InitSpritesHook(On.PlayerGraphics.orig_InitiateSprites orig, PlayerGraphics self, RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { if (self.player.playerState.slugcatCharacter == PlayerManager.GetCustomPlayer("Electric").SlugcatIndex) { sLeaser.sprites = new FSprite[14]; } else { sLeaser.sprites = new FSprite[12]; } sLeaser.sprites[0] = new FSprite("BodyA", true); sLeaser.sprites[0].anchorY = 0.7894737f; sLeaser.sprites[1] = new FSprite("HipsA", true); TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[] { new TriangleMesh.Triangle(0, 1, 2), new TriangleMesh.Triangle(1, 2, 3), new TriangleMesh.Triangle(4, 5, 6), new TriangleMesh.Triangle(5, 6, 7), new TriangleMesh.Triangle(8, 9, 10), new TriangleMesh.Triangle(9, 10, 11), new TriangleMesh.Triangle(12, 13, 14), new TriangleMesh.Triangle(2, 3, 4), new TriangleMesh.Triangle(3, 4, 5), new TriangleMesh.Triangle(6, 7, 8), new TriangleMesh.Triangle(7, 8, 9), new TriangleMesh.Triangle(10, 11, 12), new TriangleMesh.Triangle(11, 12, 13) }; TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false); sLeaser.sprites[2] = triangleMesh; sLeaser.sprites[3] = new FSprite("HeadA0", true); sLeaser.sprites[4] = new FSprite("LegsA0", true); sLeaser.sprites[4].anchorY = 0.25f; sLeaser.sprites[5] = new FSprite("PlayerArm0", true); sLeaser.sprites[5].anchorX = 0.9f; sLeaser.sprites[5].scaleY = -1f; sLeaser.sprites[6] = new FSprite("PlayerArm0", true); sLeaser.sprites[6].anchorX = 0.9f; sLeaser.sprites[7] = new FSprite("OnTopOfTerrainHand", true); sLeaser.sprites[8] = new FSprite("OnTopOfTerrainHand", true); sLeaser.sprites[8].scaleX = -1f; sLeaser.sprites[9] = new FSprite("FaceA0", true); sLeaser.sprites[11] = new FSprite("pixel", true); sLeaser.sprites[11].scale = 5f; sLeaser.sprites[10] = new FSprite("Futile_White", true); sLeaser.sprites[10].shader = rCam.game.rainWorld.Shaders["FlatLight"]; if (self.player.playerState.slugcatCharacter == PlayerManager.GetCustomPlayer("Electric").SlugcatIndex) { sLeaser.sprites[12] = new FSprite("pixel", false); sLeaser.sprites[12].scaleY = 4f; sLeaser.sprites[12].scaleX = 1f; sLeaser.sprites[12].anchorY = -1.02f; sLeaser.sprites[13] = new FSprite("pixel", false); sLeaser.sprites[13].scale = 2.3f; sLeaser.sprites[13].anchorY = -3.1f; } self.AddToContainer(sLeaser, rCam, null); }
public new void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { //orig_InitiateSprites(sLeaser, rCam); sLeaser.sprites = new FSprite[14 + extraSprites];// Debug.Log(string.Concat("SLEASERLEN: ", sLeaser.sprites.Length)); sLeaser.sprites[0] = new FSprite("BodyA", true); sLeaser.sprites[0].anchorY = 0.7894737f; sLeaser.sprites[1] = new FSprite("HipsA", true); TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[] { new TriangleMesh.Triangle(0, 1, 2), new TriangleMesh.Triangle(1, 2, 3), new TriangleMesh.Triangle(4, 5, 6), new TriangleMesh.Triangle(5, 6, 7), new TriangleMesh.Triangle(8, 9, 10), new TriangleMesh.Triangle(9, 10, 11), new TriangleMesh.Triangle(12, 13, 14), new TriangleMesh.Triangle(2, 3, 4), new TriangleMesh.Triangle(3, 4, 5), new TriangleMesh.Triangle(6, 7, 8), new TriangleMesh.Triangle(7, 8, 9), new TriangleMesh.Triangle(10, 11, 12), new TriangleMesh.Triangle(11, 12, 13) }; TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false); sLeaser.sprites[2] = triangleMesh; sLeaser.sprites[3] = new FSprite("HeadA0", true); sLeaser.sprites[4] = new FSprite("LegsA0", true); sLeaser.sprites[4].anchorY = 0.25f; sLeaser.sprites[5] = new FSprite("PlayerArm0", true); sLeaser.sprites[5].anchorX = 0.9f; sLeaser.sprites[5].scaleY = -1f; sLeaser.sprites[6] = new FSprite("PlayerArm0", true); sLeaser.sprites[6].anchorX = 0.9f; sLeaser.sprites[7] = new FSprite("OnTopOfTerrainHand", true); sLeaser.sprites[8] = new FSprite("OnTopOfTerrainHand", true); sLeaser.sprites[8].scaleX = -1f; sLeaser.sprites[9] = new FSprite("FaceA0", true); sLeaser.sprites[11] = new FSprite("pixel", true); sLeaser.sprites[11].scale = 5f; sLeaser.sprites[10] = new FSprite("Futile_White", true); sLeaser.sprites[10].shader = rCam.game.rainWorld.Shaders["FlatLight"]; sLeaser.sprites[13] = new FSprite("MoonMark", true); sLeaser.sprites[13].scale = 1f; sLeaser.sprites[12] = new FSprite("Futile_White", true); sLeaser.sprites[12].shader = rCam.game.rainWorld.Shaders["FlatLight"]; for (int l = 0; l < cosmetics.Count; l++) { cosmetics[l].InitiateSprites(sLeaser, rCam); } AddToContainer(sLeaser, rCam, null); }
public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { sLeaser.sprites = new FSprite[2]; TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[] { new TriangleMesh.Triangle(0, 1, 2) }; TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false); sLeaser.sprites[0] = triangleMesh; sLeaser.sprites[0].color = Color.Lerp(this.color, this.room.game.cameras[0].currentPalette.blackColor, 0.3f); sLeaser.sprites[1] = new FSprite("Futile_White", true); sLeaser.sprites[1].color = Color.Lerp(this.color, this.room.game.cameras[0].currentPalette.blackColor, 0.3f); sLeaser.sprites[1].shader = rCam.game.rainWorld.Shaders["Spores"]; sLeaser.sprites[1].scale = 5f; this.AddToContainer(sLeaser, rCam, null); }
public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { sLeaser.sprites = new FSprite[2]; TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[] { new TriangleMesh.Triangle(0, 1, 2) }; TriangleMesh triangleMesh = new TriangleMesh("Futile_White", tris, false, false); sLeaser.sprites[0] = triangleMesh; sLeaser.sprites[1] = new FSprite("RainSplash", true); if (backgroundDrop) { sLeaser.sprites[1].alpha = Mathf.Lerp(0.6f, 1f, this.depth); } else { sLeaser.sprites[1].alpha = UnityEngine.Random.Range(0.82f, 1f); } sLeaser.sprites[0].alpha = this.alpha; sLeaser.sprites[0].color = Color.Lerp(rCam.currentPalette.fogColor, color, this.depth * 0.9f); sLeaser.sprites[1].color = Color.Lerp(rCam.currentPalette.fogColor, color, this.depth * 0.9f); this.AddToContainer(sLeaser, rCam, null); }
public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { sLeaser.sprites = new FSprite[1]; var tris = new TriangleMesh.Triangle[] { new TriangleMesh.Triangle(0, 1, 2), new TriangleMesh.Triangle(2, 1, 3) }; var mesh = new TriangleMesh(spriteName, tris, false); mesh.MoveVertice(0, new Vector2(0f, 0f)); mesh.MoveVertice(1, new Vector2(0f, rCam.sSize.y)); mesh.MoveVertice(2, new Vector2(rCam.sSize.x, 0f)); mesh.MoveVertice(3, new Vector2(rCam.sSize.x, rCam.sSize.y)); mesh.UVvertices[0] = new Vector2(0f, 0f); mesh.UVvertices[1] = new Vector2(0f, 2f); mesh.UVvertices[2] = new Vector2(2f, 0f); mesh.UVvertices[3] = new Vector2(2f, 2f); sLeaser.sprites[0] = mesh; sLeaser.sprites[0].alpha = 0f; this.AddToContainer(sLeaser, rCam, rCam.ReturnFContainer("HUD")); }
public override void InitiateSprites(RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam) { base.InitiateSprites(sLeaser, rCam); _peekAlpha = 0f; _peekPos.Set(-1f, -1f); while (state != MappingState.Done) { UpdateMapper(int.MaxValue); } sLeaser.sprites = new FSprite[3]; // Generate tris TriangleMesh.Triangle[] tris = new TriangleMesh.Triangle[edges.Count]; for (int i = 0, len = edges.Count / 2; i < len; i++) { int o = i * 2; tris[o] = new TriangleMesh.Triangle(edges[o], edges[o + 1], edges[o] + corners.Count / 2); tris[o + 1] = new TriangleMesh.Triangle(edges[o + 1], edges[o + 1] + corners.Count / 2, edges[o] + corners.Count / 2); } // Block outside of FoV with level color TriangleMesh colorBlocker = new TriangleMesh("Futile_White", tris, false, true); colorBlocker.shader = _shader; sLeaser.sprites[0] = colorBlocker; corners.CopyTo(colorBlocker.vertices); colorBlocker.Refresh(); // Full screen overlay sLeaser.sprites[1] = new FSprite("pixel") { anchorX = 0f, anchorY = 0f }; sLeaser.sprites[1].shader = _shader; // Shortcut peek tris = new TriangleMesh.Triangle[] { // Small square new TriangleMesh.Triangle(0, 1, 2), new TriangleMesh.Triangle(1, 2, 3), // Large trapezoid new TriangleMesh.Triangle(2, 3, 4), new TriangleMesh.Triangle(3, 4, 5), new TriangleMesh.Triangle(4, 5, 6), new TriangleMesh.Triangle(5, 6, 7) }; TriangleMesh scPeek = new TriangleMesh("Futile_White", tris, true, true); scPeek.vertices[0].Set(-10f, -10f); scPeek.vertices[1].Set(-10f, 10f); scPeek.vertices[2].Set(10f, -10f); scPeek.vertices[3].Set(10f, 10f); scPeek.vertices[4].Set(30f, -30f); scPeek.vertices[5].Set(30f, 30f); scPeek.vertices[6].Set(60f, -60f); scPeek.vertices[7].Set(60f, 60f); sLeaser.sprites[2] = scPeek; AddToContainer(sLeaser, rCam, null); }