-
Notifications
You must be signed in to change notification settings - Fork 3
EyeDataBuilder
Michael edited this page Oct 9, 2024
·
4 revisions
EyeDataBuilder(WildfrostMod mod)
- The builder for creating EyeData.
- When a companion (or any unit) ascends, EyeData is found (if any) for the companion and placed in front of their sprites.
//'this' refers to an instance of the WildfrostMod class.
//assets is a list of objects used in Tutorial 2 and onward.
assets.Add( new EyeDataBuilder(this)
.Create("theeyesofwort")
.WithCardData("Wort")
.WithEyes( new Eye()
{
postion = new Vector2(0.5f,0.5f),
scale = new Vector2(1.0f,1.0f),
rotation = 22.5f
},
new Eye()
{
postion = new Vector2(-0.5f,0.5f),
scale = new Vector2(1.0f,1.0f),
rotation = 22.5f
})
);
//Note that for the builder to actually build the EyeData, an AddAssets method needs to be written. See Tutorial 2 for the code.The EyeDataBuilder is simple enough that it can be simplified to a single method. The method is written as an extension method, but can be rewritten however you want.
public static EyeDataBuilder CreateEyeDataBuilder(WildfrostMod mod, string cardName, params (float, float, float, float, float)[] eyes)
{
string trueName = mod.GUID + "." + cardName;
EyeData.Eye[] trueEyes = eyes.Select( e => new EyeData.Eye()
{
position = new Vector2(e.Item1, e.Item2),
scale = new Vector2(e.Item3, e.Item4),
rotation = e.Item5
} ).ToArray();
return new EyeDataBuilder(mod)
.Create("EyesOf" + trueName)
.WithCardData(trueName)
.WithEyes(trueEyes);
}This makes the earlier example into this:
assets.Add( CreateEyeDataBuilder(this, "Wort",
( 0.5f, 0.5f, 1.0f, 1.0f, 22.5f),
(-0.5f, 0.5f, 1.0f, 1.0f, 22.5f)
));Create(string name)
- Used to create an empty EyeData.
-
nameis the internal name for your EyeData.
WithCardData(string cardData) or WithCardData(CardData cardData)
- Used to specify which card the EyeData belongs to.
-
cardDatais either the internal name of the card or the CardData itself.
WithEyes(params EyeData.Eye[] eyes)
- Used to set the eyes used by the EyeData.
-
eyeshave the following properties-
position: A Vector2 that determines where on the card the eye goes. Typically, the first coordinate is between 0 and 1, and the second is between -1 and 1. -
scale: A Vector2 that determines how tall or wide the eye is. Both coordinates are typically around or less than 1. -
rotation: A float that determines the rotation of the eye (in degrees). 0 degrees corresponds to a diamond.
-
If you want to contribute or need support, join the Wildfrost Discord