TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ dropMeteor()

static void Terraria.WorldGen.dropMeteor ( )
inlinestatic

Definition at line 3030 of file WorldGen.cs.

3031 {
3032 bool flag = true;
3033 if (Main.netMode == 1)
3034 {
3035 return;
3036 }
3037 for (int i = 0; i < 255; i++)
3038 {
3039 if (Main.player[i].active)
3040 {
3041 flag = false;
3042 break;
3043 }
3044 }
3045 int num = 0;
3046 double num2 = (double)Main.maxTilesX / 4200.0;
3047 int num3 = (int)(400.0 * num2);
3048 for (int j = 5; j < Main.maxTilesX - 5; j++)
3049 {
3050 for (int k = 5; (double)k < Main.worldSurface; k++)
3051 {
3052 if (Main.tile[j, k].active() && Main.tile[j, k].type == 37)
3053 {
3054 num++;
3055 if (num > num3)
3056 {
3057 return;
3058 }
3059 }
3060 }
3061 }
3062 double num4 = 600.0;
3063 int num5 = 0;
3064 while (!flag)
3065 {
3066 double num6 = (double)Main.maxTilesX * 0.08;
3067 int num7 = Main.rand.Next(150, Main.maxTilesX - 150);
3068 while ((double)num7 > (double)Main.spawnTileX - num6 && (double)num7 < (double)Main.spawnTileX + num6)
3069 {
3070 num7 = Main.rand.Next(150, Main.maxTilesX - 150);
3071 }
3072 for (int l = (int)(Main.worldSurface * 0.3); l < Main.maxTilesY; l++)
3073 {
3074 Tile tile = Main.tile[num7, l];
3075 if (!tile.active() || !Main.tileSolid[tile.type] || TileID.Sets.Platforms[tile.type])
3076 {
3077 continue;
3078 }
3079 int num8 = 0;
3080 int num9 = 15;
3081 for (int m = num7 - num9; m < num7 + num9; m++)
3082 {
3083 for (int n = l - num9; n < l + num9; n++)
3084 {
3085 if (SolidTile(m, n))
3086 {
3087 num8++;
3088 if (Main.tile[m, n].type == 189 || Main.tile[m, n].type == 202)
3089 {
3090 num8 -= 100;
3091 }
3092 }
3093 else if (Main.tile[m, n].liquid > 0)
3094 {
3095 num8--;
3096 }
3097 }
3098 }
3099 if ((double)num8 >= num4)
3100 {
3101 flag = meteor(num7, l);
3102 if (flag)
3103 {
3104 }
3105 }
3106 else
3107 {
3108 num4 -= 0.5;
3109 }
3110 break;
3111 }
3112 num5++;
3113 if (num4 < 100.0 || num5 >= Main.maxTilesX * 5)
3114 {
3115 break;
3116 }
3117 }
3118 }
static bool[] Platforms
Definition TileID.cs:219
static bool meteor(int i, int j, bool ignorePlayers=false)
Definition WorldGen.cs:3120

References Terraria.Tile.active(), Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.WorldGen.meteor(), Terraria.Main.netMode, Terraria.ID.TileID.Sets.Platforms, Terraria.Main.player, Terraria.Main.rand, Terraria.Enums.SolidTile, Terraria.Main.spawnTileX, Terraria.Main.tile, Terraria.Main.tileSolid, Terraria.Tile.type, and Terraria.Main.worldSurface.

Referenced by Terraria.Main.HandleMeteorFall().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: