Advertisement
Guest User

s

a guest
Oct 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Graphics;
  3. using Terraria;
  4. using Terraria.DataStructures;
  5. using Terraria.Enums;
  6. using Terraria.ID;
  7. using Terraria.ModLoader;
  8. using Terraria.ObjectData;
  9.  
  10. namespace CortixMod.Tiles
  11. {
  12. public class SparkSlimeCandelabra : ModTile
  13. {
  14. public override void SetDefaults()
  15. {
  16. Main.tileLighted[Type] = true;
  17. Main.tileFrameImportant[Type] = true;
  18. Main.tileSolid[Type] = false;
  19. Main.tileNoAttach[Type] = true;
  20. Main.tileNoFail[Type] = true;
  21. Main.tileWaterDeath[Type] = true;
  22. TileObjectData.addTile(Type);
  23. AddToArray(ref TileID.Sets.RoomNeeds.CountsAsTorch);
  24. AddMapEntry(new Color(255, 67, 185));
  25. dustType = mod.DustType("SparkSlimeSparkle");
  26. disableSmartCursor = true;
  27. adjTiles = new int[] { TileID.Candelabras };
  28. }
  29.  
  30. public override void KillMultiTile(int i, int j, int frameX, int frameY)
  31. {
  32. Item.NewItem(i * 16, j * 16, 32, 16, mod.ItemType("SparkSlimeCandelabra"));
  33. }
  34.  
  35. public override void NumDust(int i, int j, bool fail, ref int num)
  36. {
  37. num = Main.rand.Next(1, 3);
  38. }
  39.  
  40. public override void ModifyLight(int i, int j, ref float r, ref float g, ref float b)
  41. {
  42. Tile tile = Main.tile[i, j];
  43. if (tile.frameX < 66)
  44. {
  45. r = 0.9f;
  46. g = 0.9f;
  47. b = 0.9f;
  48. }
  49. }
  50.  
  51. public override void SetDrawPositions(int i, int j, ref int width, ref int offsetY, ref int height)
  52. {
  53. offsetY = 0;
  54. if (WorldGen.SolidTile(i, j - 1))
  55. {
  56. offsetY = 2;
  57. if (WorldGen.SolidTile(i - 1, j + 1) || WorldGen.SolidTile(i + 1, j + 1))
  58. {
  59. offsetY = 4;
  60. }
  61. }
  62. }
  63.  
  64. public override void PostDraw(int i, int j, SpriteBatch spriteBatch)
  65. {
  66. ulong randSeed = Main.TileFrameSeed ^ (ulong)((long)j << 32 | (long)((ulong)i));
  67. Color color = new Color(100, 100, 100, 0);
  68. int frameX = Main.tile[i, j].frameX;
  69. int frameY = Main.tile[i, j].frameY;
  70. int width = 20;
  71. int offsetY = 0;
  72. int height = 20;
  73. if (WorldGen.SolidTile(i, j - 1))
  74. {
  75. offsetY = 2;
  76. if (WorldGen.SolidTile(i - 1, j + 1) || WorldGen.SolidTile(i + 1, j + 1))
  77. {
  78. offsetY = 4;
  79. }
  80. }
  81. Vector2 zero = new Vector2(Main.offScreenRange, Main.offScreenRange);
  82. if (Main.drawToScreen)
  83. {
  84. zero = Vector2.Zero;
  85. }
  86. for (int k = 0; k < 7; k++)
  87. {
  88. float x = (float)Utils.RandomInt(ref randSeed, -10, 11) * 0.15f;
  89. float y = (float)Utils.RandomInt(ref randSeed, -10, 1) * 0.35f;
  90. Main.spriteBatch.Draw(mod.GetTexture("Tiles/SparkSlimeCandelabra_Flame"), new Vector2((float)(i * 16 - (int)Main.screenPosition.X) - (width - 16f) / 2f + x, (float)(j * 16 - (int)Main.screenPosition.Y + offsetY) + y) + zero, new Rectangle(frameX, frameY, width, height), color, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
  91. }
  92. }
  93. }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement