Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NPCHeadRenderer.cs
Go to the documentation of this file.
1
using
Microsoft.Xna.Framework
;
2
using
Microsoft.Xna.Framework.Graphics
;
3
using
ReLogic.Content
;
4
using
Terraria.GameContent
;
5
6
namespace
Terraria.Graphics.Renderers
;
7
8
public
class
NPCHeadRenderer
:
INeedRenderTargetContent
9
{
10
private
NPCHeadDrawRenderTargetContent
[]
_contents
;
11
12
private
Asset<Texture2D>
[]
_matchingArray
;
13
14
public
bool
IsReady
=>
false
;
15
16
public
NPCHeadRenderer
(
Asset<Texture2D>
[] matchingArray)
17
{
18
_matchingArray
= matchingArray;
19
Reset
();
20
}
21
22
public
void
Reset
()
23
{
24
_contents
=
new
NPCHeadDrawRenderTargetContent
[
_matchingArray
.Length];
25
}
26
27
public
void
DrawWithOutlines
(
Entity
entity,
int
headId,
Vector2
position,
Color
color,
float
rotation,
float
scale,
SpriteEffects
effects)
28
{
29
if
(
_contents
[headId] ==
null
)
30
{
31
_contents
[headId] =
new
NPCHeadDrawRenderTargetContent
();
32
_contents
[headId].
SetTexture
(
_matchingArray
[headId].Value);
33
}
34
NPCHeadDrawRenderTargetContent
nPCHeadDrawRenderTargetContent =
_contents
[headId];
35
if
(nPCHeadDrawRenderTargetContent.
IsReady
)
36
{
37
RenderTarget2D
target = nPCHeadDrawRenderTargetContent.
GetTarget
();
38
Main
.
spriteBatch
.Draw(target, position,
null
, color, rotation, ((
Texture2D
)target).Size() / 2f, scale, effects, 0f);
39
}
40
else
41
{
42
nPCHeadDrawRenderTargetContent.
Request
();
43
}
44
}
45
46
public
void
PrepareRenderTarget
(
GraphicsDevice
device,
SpriteBatch
spriteBatch)
47
{
48
for
(
int
i = 0; i <
_contents
.Length; i++)
49
{
50
if
(
_contents
[i] !=
null
&& !
_contents
[i].
IsReady
)
51
{
52
_contents
[i].
PrepareRenderTarget
(device, spriteBatch);
53
}
54
}
55
}
56
}
Microsoft.Xna.Framework.Graphics.GraphicsDevice
Definition
GraphicsDevice.cs:13
Microsoft.Xna.Framework.Graphics.RenderTarget2D
Definition
RenderTarget2D.cs:9
Microsoft.Xna.Framework.Graphics.SpriteBatch
Definition
SpriteBatch.cs:8
Microsoft.Xna.Framework.Graphics.Texture2D
Definition
Texture2D.cs:13
ReLogic.Content.Asset
Definition
Asset.cs:8
Terraria.Entity
Definition
Entity.cs:7
Terraria.GameContent.ARenderTargetContentByRequest.PrepareRenderTarget
void PrepareRenderTarget(GraphicsDevice device, SpriteBatch spriteBatch)
Definition
ARenderTargetContentByRequest.cs:26
Terraria.GameContent.ARenderTargetContentByRequest.GetTarget
RenderTarget2D GetTarget()
Definition
ARenderTargetContentByRequest.cs:21
Terraria.GameContent.ARenderTargetContentByRequest.IsReady
bool IsReady
Definition
ARenderTargetContentByRequest.cs:14
Terraria.GameContent.ARenderTargetContentByRequest.Request
void Request()
Definition
ARenderTargetContentByRequest.cs:16
Terraria.GameContent.NPCHeadDrawRenderTargetContent.SetTexture
void SetTexture(Texture2D texture)
Definition
NPCHeadDrawRenderTargetContent.cs:10
Terraria.GameContent.NPCHeadDrawRenderTargetContent
Definition
NPCHeadDrawRenderTargetContent.cs:7
Terraria.Graphics.Renderers.NPCHeadRenderer.IsReady
bool IsReady
Definition
NPCHeadRenderer.cs:14
Terraria.Graphics.Renderers.NPCHeadRenderer._contents
NPCHeadDrawRenderTargetContent[] _contents
Definition
NPCHeadRenderer.cs:10
Terraria.Graphics.Renderers.NPCHeadRenderer._matchingArray
Asset< Texture2D >[] _matchingArray
Definition
NPCHeadRenderer.cs:12
Terraria.Graphics.Renderers.NPCHeadRenderer.NPCHeadRenderer
NPCHeadRenderer(Asset< Texture2D >[] matchingArray)
Definition
NPCHeadRenderer.cs:16
Terraria.Graphics.Renderers.NPCHeadRenderer.PrepareRenderTarget
void PrepareRenderTarget(GraphicsDevice device, SpriteBatch spriteBatch)
Definition
NPCHeadRenderer.cs:46
Terraria.Graphics.Renderers.NPCHeadRenderer.Reset
void Reset()
Definition
NPCHeadRenderer.cs:22
Terraria.Graphics.Renderers.NPCHeadRenderer.DrawWithOutlines
void DrawWithOutlines(Entity entity, int headId, Vector2 position, Color color, float rotation, float scale, SpriteEffects effects)
Definition
NPCHeadRenderer.cs:27
Terraria.Graphics.Renderers.NPCHeadRenderer
Definition
NPCHeadRenderer.cs:9
Terraria.Main.spriteBatch
static SpriteBatch spriteBatch
Definition
Main.cs:974
Terraria.Main
Definition
Main.cs:79
Terraria.GameContent.INeedRenderTargetContent
Definition
INeedRenderTargetContent.cs:6
Microsoft.Xna.Framework.Graphics.SpriteEffects
SpriteEffects
Definition
SpriteEffects.cs:7
Microsoft.Xna.Framework.Graphics
Definition
AlphaTestEffect.cs:1
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
ReLogic.Content
Definition
IAssetReader.cs:5
Terraria.GameContent
Definition
AchievementsHelper.cs:1
Terraria.Graphics.Renderers
Definition
ABasicParticle.cs:5
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
source
Terraria.Graphics.Renderers
NPCHeadRenderer.cs
Generated by
1.10.0