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

◆ DrawSurfaceBG_Forest()

void Terraria.Main.DrawSurfaceBG_Forest ( double backgroundTopMagicNumber,
float bgGlobalScaleMultiplier,
int pushBGTopHack,
int[] bgTexIndexes )
inlineprivate

Definition at line 58008 of file Main.cs.

58009 {
58010 bgScale = 1.25f;
58011 bgParallax = 0.4;
58012 bgTopY = (int)(backgroundTopMagicNumber * 1800.0 + 1500.0) + (int)scAdj + pushBGTopHack;
58013 if (bgTexIndexes[0] == 91)
58014 {
58015 bgParallax = 0.27000001072883606;
58016 bgScale = 1.2f;
58017 }
58018 if (bgTexIndexes[0] == 173)
58019 {
58020 bgParallax = 0.25;
58021 bgScale = 1.3f;
58022 }
58023 if (bgTexIndexes[0] == 178)
58024 {
58025 bgParallax = 0.30000001192092896;
58026 bgScale = 1.2f;
58027 }
58028 if (bgTexIndexes[0] == 184)
58029 {
58030 bgParallax = 0.25;
58031 bgScale = 1.2f;
58032 }
58033 if (bgTexIndexes[0] == 282)
58034 {
58035 bgScale = 1.4f;
58036 }
58039 SkyManager.Instance.DrawToDepth(spriteBatch, 1f / (float)bgParallax);
58040 if (bgTexIndexes[0] >= 0)
58041 {
58044 bgWidthScaled = (int)((float)backgroundWidth[bgTexIndexes[0]] * bgScale);
58045 bgStartX = (int)(0.0 - Math.IEEERemainder((double)screenPosition.X * bgParallax, bgWidthScaled) - (double)(bgWidthScaled / 2));
58046 if (bgTexIndexes[0] == 91)
58047 {
58048 bgTopY = (int)(backgroundTopMagicNumber * 1600.0 + 1400.0) + (int)scAdj + pushBGTopHack;
58049 }
58050 if (bgTexIndexes[0] == 173)
58051 {
58052 bgTopY = (int)(backgroundTopMagicNumber * 1600.0 + 1400.0) + (int)scAdj + pushBGTopHack;
58053 }
58054 if (bgTexIndexes[0] == 184)
58055 {
58056 bgTopY = (int)(backgroundTopMagicNumber * 1600.0 + 1400.0) + (int)scAdj + pushBGTopHack;
58057 }
58058 if (gameMenu)
58059 {
58060 bgTopY = 320 + pushBGTopHack;
58061 }
58062 if (bgTexIndexes[0] == 50)
58063 {
58064 bgTopY -= 50;
58065 }
58066 if (bgTexIndexes[0] == 53)
58067 {
58068 bgTopY -= 100;
58069 }
58070 if (bgTexIndexes[0] == 91)
58071 {
58072 bgTopY += 200;
58073 }
58074 if (bgTexIndexes[0] == 173)
58075 {
58076 bgTopY += 200;
58077 }
58078 if (bgTexIndexes[0] == 178)
58079 {
58080 bgTopY += 75;
58081 }
58083 if ((double)screenPosition.Y < worldSurface * 16.0 + 16.0)
58084 {
58085 for (int i = 0; i < bgLoops; i++)
58086 {
58087 if (bgTexIndexes[0] != -1)
58088 {
58090 int num = bgTexIndexes[0];
58091 if (num == 173)
58092 {
58093 int num2 = (int)(GetBackgroundCounter() / 10);
58094 num2 %= 4;
58095 int num3 = 251 + num2;
58098 }
58099 if (val.Value != null)
58100 {
58102 }
58103 }
58104 }
58105 }
58106 }
58107 if (bgTexIndexes[1] >= 0)
58108 {
58110 bgScale = 1.31f;
58112 bgWidthScaled = (int)((float)backgroundWidth[bgTexIndexes[1]] * bgScale);
58113 if (bgWidthScaled == 0)
58114 {
58115 bgWidthScaled = 1;
58116 }
58117 bgParallax = 0.43;
58119 SkyManager.Instance.DrawToDepth(spriteBatch, 1f / (float)bgParallax);
58120 bgStartX = (int)(0.0 - Math.IEEERemainder((double)screenPosition.X * bgParallax, bgWidthScaled) - (double)(bgWidthScaled / 2));
58121 bgTopY = (int)(backgroundTopMagicNumber * 1950.0 + 1750.0) + (int)scAdj + pushBGTopHack;
58122 if (gameMenu)
58123 {
58124 bgTopY = 400 + pushBGTopHack;
58125 bgStartX -= 80;
58126 }
58127 if (bgTexIndexes[1] == 51)
58128 {
58129 bgTopY -= 50;
58130 }
58131 if (bgTexIndexes[1] == 54)
58132 {
58133 bgTopY -= 100;
58134 }
58136 if ((double)screenPosition.Y < worldSurface * 16.0 + 16.0)
58137 {
58138 for (int j = 0; j < bgLoops; j++)
58139 {
58141 }
58142 }
58143 }
58144 if (bgTexIndexes[2] < 0)
58145 {
58146 return;
58147 }
58149 bgScale = 1.34f;
58151 bgParallax = 0.49;
58153 SkyManager.Instance.DrawToDepth(spriteBatch, 1f / (float)bgParallax);
58154 if (bgTexIndexes[0] == 91)
58155 {
58156 bgScale = 1.3f;
58158 bgParallax = 0.42;
58159 }
58160 if (bgTexIndexes[2] < 0 && WorldGen.drunkWorldGen)
58161 {
58162 return;
58163 }
58164 bgWidthScaled = (int)((float)backgroundWidth[bgTexIndexes[2]] * bgScale);
58165 if (bgWidthScaled == 0)
58166 {
58167 bgWidthScaled = 1;
58168 }
58169 bgStartX = (int)(0.0 - Math.IEEERemainder((double)screenPosition.X * bgParallax, bgWidthScaled) - (double)(bgWidthScaled / 2));
58170 bgTopY = (int)(backgroundTopMagicNumber * 2100.0 + 2000.0) + (int)scAdj + pushBGTopHack;
58171 if (gameMenu)
58172 {
58173 bgTopY = 480 + pushBGTopHack;
58174 bgStartX -= 120;
58175 }
58176 if (bgTexIndexes[2] == 52)
58177 {
58178 bgTopY -= 50;
58179 }
58180 if (bgTexIndexes[2] == 55)
58181 {
58182 bgTopY -= 100;
58183 }
58184 if (bgTexIndexes[2] == 92)
58185 {
58186 bgTopY += 150;
58187 }
58189 if ((double)screenPosition.Y < worldSurface * 16.0 + 16.0)
58190 {
58191 for (int k = 0; k < bgLoops; k++)
58192 {
58194 }
58195 }
58196 }
static double IEEERemainder(double x, double y)
Definition Math.cs:679
static Asset< Texture2D >[] Background
float scAdj
Definition Main.cs:2585
double bgParallax
Definition Main.cs:956
static int bgWidthScaled
Definition Main.cs:2575
uint GetBackgroundCounter()
Definition Main.cs:57999
void LoadBackground(int i)
Definition Main.cs:55998
static SpriteBatch spriteBatch
Definition Main.cs:974
static double worldSurface
Definition Main.cs:1272
Microsoft.Xna.Framework.? Rectangle GetBackgroundRect(int backgroundTextureIndex)
Definition Main.cs:57968
int bgTopY
Definition Main.cs:966
static Vector2 screenPosition
Definition Main.cs:1715
static int[] backgroundWidth
Definition Main.cs:1665
void SetBackgroundOffsets(int backgroundID, double backgroundTopMagicNumber, int pushBGTopHack)
Definition Main.cs:57314
int bgLoops
Definition Main.cs:960
int bgStartX
Definition Main.cs:958
static Microsoft.Xna.Framework.Color ColorOfSurfaceBackgroundsModified
Definition Main.cs:2581
static float bgScale
Definition Main.cs:2573
static int screenWidth
Definition Main.cs:1719
static bool gameMenu
Definition Main.cs:1926

References Terraria.GameContent.TextureAssets.Background, Terraria.Main.backgroundWidth, Terraria.Main.bgLoops, Terraria.Main.bgParallax, Terraria.Main.bgScale, Terraria.Main.bgStartX, Terraria.Main.bgTopY, Terraria.Main.bgWidthScaled, Terraria.Main.ColorOfSurfaceBackgroundsModified, Terraria.WorldGen.drunkWorldGen, Terraria.Main.gameMenu, Terraria.Main.GetBackgroundCounter(), Terraria.Main.GetBackgroundRect(), System.Text.RegularExpressions.i, System.Math.IEEERemainder(), Terraria.Graphics.Effects.SkyManager.Instance, Terraria.Main.LoadBackground(), Terraria.Main.scAdj, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Main.SetBackgroundOffsets(), Terraria.Main.spriteBatch, and Terraria.Main.worldSurface.

Referenced by Terraria.Main.DrawSurfaceBG().