54 internal const int TILE = 1;
56 internal const int WALL = 2;
74 for (
int i = 0; i < 255; i++)
85 for (
int i = 0; i <= 500; i++)
89 if (hitTileObject.
X == x && hitTileObject.
Y == y)
101 order =
new int[501];
102 for (
int i = 0; i <= 500; i++)
112 for (
int i = 0; i <= 500; i++)
116 if (hitTileObject.
type == hitType)
118 if (hitTileObject.
X == x && hitTileObject.
Y == y)
123 else if (i != 0 && hitTileObject.
type == 0)
144 for (
int i = 0; i <= 500; i++)
147 hitTileObject =
data[num];
148 if (hitTileObject.
type == hitType)
150 if (hitTileObject.
X == x && hitTileObject.
Y == y)
155 else if (i != 0 && hitTileObject.
type == 0)
163 hitTileObject.type = hitType;
169 if (tileId >= 0 && tileId <= 500)
177 public int AddDamage(
int tileId,
int damageAmount,
bool updateAmount =
true)
179 if (tileId < 0 || tileId > 500)
190 return hitTileObject.damage + damageAmount;
192 hitTileObject.damage += damageAmount;
193 hitTileObject.timeToLive = 60;
194 hitTileObject.animationTimeElapsed = 0;
195 hitTileObject.animationDirection = (
Main.
rand.NextFloat() * ((float)
Math.
PI * 2f)).ToRotationVector2() * 2f;
197 return hitTileObject.
damage;
209 for (
int num = 500; num > 0; num--)
218 for (num = 0; num <= 500 &&
order[num] != tileId; num++)
223 int num2 =
order[num - 1];
234 if (tileId >= 0 && tileId <= 500)
238 for (i = 0; i < 500 &&
order[i] != tileId; i++)
252 for (
int i = 0; i <= 500; i++)
255 if (hitTileObject.
type == 0)
262 hitTileObject.
Clear();
269 hitTileObject.damage -= 10;
271 else if ((
double)hitTileObject.
timeToLive < 24.0)
273 hitTileObject.damage -= 7;
275 else if ((
double)hitTileObject.
timeToLive < 36.0)
277 hitTileObject.damage -= 5;
279 else if ((
double)hitTileObject.
timeToLive < 48.0)
281 hitTileObject.damage -= 2;
283 if (hitTileObject.
damage < 0)
285 hitTileObject.
Clear();
288 else if (hitTileObject.
type == 1)
292 hitTileObject.
Clear();
296 else if (tile.
wall == 0)
298 hitTileObject.
Clear();
310 for (
int j = num; j < 500; j++)
325 for (
int i = 0; i <
data.Length; i++)
341 for (
int j = 0; j <
data.Length; j++)
359 bool flag2 = tile !=
null;
360 if (flag2 && num == 1)
364 if (flag2 && num == 2)
366 flag2 = flag2 && tile.wall != 0 && (!tile.
invisibleWall() || flag);
385 int num2 = tile.frameX / 22;
386 int num3 = tile.frameY / 22;
389 flag3 = ((num2 != 1 && num2 != 2) || num3 < 6 || num3 > 8) && (num2 != 3 || num3 > 2) && (num2 != 4 || num3 < 3 || num3 > 5) && ((num2 != 5 || num3 < 6 || num3 > 8) ?
true :
false);
392 else if (tile.
type == 72)
409 else if (damage >= 60)
413 else if (damage >= 40)
417 else if (damage >= 20)
422 value.Inflate(-2, -2);
428 if (!((
float)animationTimeElapsed >= 10f))
430 float num5 = (float)animationTimeElapsed / 10f;
435 float num7 = num5 % num6;
437 if ((
int)(num5 / num6) % 2 == 1)
442 Tile tile2 = tileSafely;
444 if (texture2D !=
null)
448 float num8 = num7 * 0.2f + 1f;
449 float num9 = 1f - num7;
451 color *= num9 * num9 * 0.8f;
452 Vector2 scale = num8 * vector3;
454 spriteBatch.
Draw(texture2D, position,
new Rectangle(tile2.
frameX, tile2.
frameY, 16, 16), color, rotation, vector2, scale,
SpriteEffects.None, 0f);
void Draw(Texture2D texture, Vector2 position, Color color)
static Tile GetTileSafely(Vector2 position)
static Asset< Texture2D > TileCrack
Vector2 animationDirection
static void ClearAllTilesAtThisLocation(int x, int y)
void DrawFreshAnimations(SpriteBatch spriteBatch)
void TryClearingAndPruning(int x, int y, int hitType)
int TryFinding(int x, int y, int hitType)
void SortSlots(int tileId)
static UnifiedRandom rand
int AddDamage(int tileId, int damageAmount, bool updateAmount=true)
int HitObject(int x, int y, int hitType)
void UpdatePosition(int tileId, int x, int y)
void ClearThisTile(int x, int y)
static Color GetColor(Point tileCoords)
static bool[] tileSolidTop
static bool ShouldShowInvisibleWalls()
static bool SettingsEnabled_MinersWobble
static Vector2 screenPosition
static int offScreenRange
static UnifiedRandom rand
static bool IsTreeType(int tree)
static bool InWorld(int x, int y, int fluff=0)