From c54af230fd226b6e3fb6308e2ee1a0819ffa9ee4 Mon Sep 17 00:00:00 2001 From: mushymato Date: Mon, 28 Oct 2024 02:20:03 -0400 Subject: [PATCH] update docfx gh-pages --- ...etTinker.Companions.Anim.DrawSnapshot.html | 514 ++++++++++++++++++ docs/api/TrinketTinker.Companions.Anim.html | 6 + ...r.Companions.Motions.BaseLerpMotion-1.html | 16 + ...Companions.Motions.BaseStaticMotion-1.html | 15 + ...Tinker.Companions.Motions.HoverMotion.html | 8 +- ...tTinker.Companions.Motions.LerpMotion.html | 15 + ...ketTinker.Companions.Motions.Motion-1.html | 226 ++++++-- ...Tinker.Companions.Motions.OrbitMotion.html | 27 +- ...nker.Companions.Motions.SerpentMotion.html | 391 +++++++++++++ .../api/TrinketTinker.Companions.Motions.html | 6 + ...ketTinker.Effects.Abilities.Ability-1.html | 1 - docs/api/TrinketTinker.Effects.Abilities.html | 5 - ...TrinketTinker.Extras.TrinketColorizer.html | 2 +- .../api/TrinketTinker.Models.AbilityData.html | 24 +- ...nketTinker.Models.MotionArgs.LerpArgs.html | 1 + ...ketTinker.Models.MotionArgs.OrbitArgs.html | 34 +- ...Tinker.Models.MotionArgs.SerpentArgs.html} | 100 ++-- docs/api/TrinketTinker.Models.MotionArgs.html | 5 + docs/api/TrinketTinker.Models.MotionData.html | 99 +--- docs/api/TrinketTinker.Models.ProcOn.html | 2 +- docs/api/toc.html | 12 +- docs/api/toc.json | 2 +- docs/guide/0-Trinket.html | 2 +- docs/guide/3-Motion.html | 23 +- docs/guide/3.2-Animation Clips.html | 58 +- docs/guide/3.z.000-Lerp.html | 4 +- docs/guide/3.z.001-Hover.html | 2 +- docs/guide/3.z.002-Bounce.html | 8 +- docs/guide/3.z.003-Hop.html | 2 +- ...0-DebugDummy.html => 3.z.004-Serpent.html} | 40 +- docs/guide/3.z.101-Orbit.html | 6 + docs/guide/4-Ability.html | 30 +- docs/guide/4.0-Proc.html | 2 +- docs/guide/4.z.02-Health.html | 6 +- docs/guide/4.z.03-Stamina.html | 6 +- docs/guide/4.z.05-Hitscan.html | 4 +- docs/guide/4.z.06-Projectile.html | 20 +- docs/guide/4.z.07-RaiseTrigger.html | 3 + docs/guide/4.z.08-Action.html | 4 +- docs/guide/4.z.10-HarvestCrop.html | 6 +- ....html => 5-Temporary Animated Sprite.html} | 2 +- docs/guide/6-Extras.html | 6 +- docs/guide/toc.html | 8 +- docs/guide/toc.json | 2 +- docs/images/demo/repeat.png | Bin 0 -> 147046 bytes docs/images/sheets/rl-repeat-2.png | Bin 0 -> 1858 bytes docs/index.json | 52 +- docs/manifest.json | 84 ++- docs/xrefmap.yml | 457 +++++++++++++--- 49 files changed, 1949 insertions(+), 399 deletions(-) create mode 100644 docs/api/TrinketTinker.Companions.Anim.DrawSnapshot.html create mode 100644 docs/api/TrinketTinker.Companions.Motions.SerpentMotion.html rename docs/api/{TrinketTinker.Effects.Abilities.DebugDummyAbility.html => TrinketTinker.Models.MotionArgs.SerpentArgs.html} (56%) rename docs/guide/{4.z.0-DebugDummy.html => 3.z.004-Serpent.html} (75%) rename docs/guide/{5-TAS.html => 5-Temporary Animated Sprite.html} (99%) create mode 100644 docs/images/demo/repeat.png create mode 100644 docs/images/sheets/rl-repeat-2.png diff --git a/docs/api/TrinketTinker.Companions.Anim.DrawSnapshot.html b/docs/api/TrinketTinker.Companions.Anim.DrawSnapshot.html new file mode 100644 index 0000000..379d0c3 --- /dev/null +++ b/docs/api/TrinketTinker.Companions.Anim.DrawSnapshot.html @@ -0,0 +1,514 @@ + + + + + Class DrawSnapshot | TrinketTinker + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class DrawSnapshot +

+ +
+
Namespace
TrinketTinker.Companions.Anim
+
Assembly
TrinketTinker.dll
+
+ +

Record holding all info needed to draw with Microsoft.Xna.Framework.Graphics.SpriteBatch. +The position given is the map X,Y position, to be translated to the viewport position on draw.

+
+
+ +
+
public sealed record DrawSnapshot : IEquatable<DrawSnapshot>
+
+ + + + +
+
Inheritance
+
+ +
DrawSnapshot
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ DrawSnapshot(Texture2D, Vector2, Rectangle, Color, float, Vector2, Vector2, SpriteEffects, float) + +

+ +

Record holding all info needed to draw with Microsoft.Xna.Framework.Graphics.SpriteBatch. +The position given is the map X,Y position, to be translated to the viewport position on draw.

+
+
+ +
+
public DrawSnapshot(Texture2D Texture, Vector2 Position, Rectangle SourceRect, Color DrawColor, float Rotation, Vector2 Origin, Vector2 TextureScale, SpriteEffects Effects, float LayerDepth)
+
+ +

Parameters

+
+
Texture Texture2D
+
+
Position Vector2
+
+
SourceRect Rectangle
+
+
DrawColor Color
+
+
Rotation float
+
+
Origin Vector2
+
+
TextureScale Vector2
+
+
Effects SpriteEffects
+
+
LayerDepth float
+
+
+ + + + + + + + + + + + +

Properties +

+ + + + +

+ DrawColor + +

+ +
+
+ +
+
public Color DrawColor { get; init; }
+
+ + + + + +

Property Value

+
+
Color
+
+
+ + + + + + + + + + +

+ Effects + +

+ +
+
+ +
+
public SpriteEffects Effects { get; init; }
+
+ + + + + +

Property Value

+
+
SpriteEffects
+
+
+ + + + + + + + + + +

+ LayerDepth + +

+ +
+
+ +
+
public float LayerDepth { get; init; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ Origin + +

+ +
+
+ +
+
public Vector2 Origin { get; init; }
+
+ + + + + +

Property Value

+
+
Vector2
+
+
+ + + + + + + + + + +

+ Position + +

+ +
+
+ +
+
public Vector2 Position { get; init; }
+
+ + + + + +

Property Value

+
+
Vector2
+
+
+ + + + + + + + + + +

+ Rotation + +

+ +
+
+ +
+
public float Rotation { get; init; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + + + + +

+ SourceRect + +

+ +
+
+ +
+
public Rectangle SourceRect { get; init; }
+
+ + + + + +

Property Value

+
+
Rectangle
+
+
+ + + + + + + + + + +

+ Texture + +

+ +
+
+ +
+
public Texture2D Texture { get; init; }
+
+ + + + + +

Property Value

+
+
Texture2D
+
+
+ + + + + + + + + + +

+ TextureScale + +

+ +
+
+ +
+
public Vector2 TextureScale { get; init; }
+
+ + + + + +

Property Value

+
+
Vector2
+
+
+ + + + + + + + + +
+ + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/api/TrinketTinker.Companions.Anim.html b/docs/api/TrinketTinker.Companions.Anim.html index d4322c4..9f50bd2 100644 --- a/docs/api/TrinketTinker.Companions.Anim.html +++ b/docs/api/TrinketTinker.Companions.Anim.html @@ -94,6 +94,12 @@

Classes

+
+
DrawSnapshot
+

Record holding all info needed to draw with Microsoft.Xna.Framework.Graphics.SpriteBatch. +The position given is the map X,Y position, to be translated to the viewport position on draw.

+
+
TinkerAnimSprite

Simplified animated sprite controller. diff --git a/docs/api/TrinketTinker.Companions.Motions.BaseLerpMotion-1.html b/docs/api/TrinketTinker.Companions.Motions.BaseLerpMotion-1.html index 100f4f4..683fc37 100644 --- a/docs/api/TrinketTinker.Companions.Motions.BaseLerpMotion-1.html +++ b/docs/api/TrinketTinker.Companions.Motions.BaseLerpMotion-1.html @@ -136,6 +136,7 @@

Type Parameters

HopMotion
HoverMotion
LerpMotion
+
SerpentMotion
@@ -169,6 +170,12 @@

Type Parameters

Motion<IArgs>.cs
+
+ Motion<IArgs>.framesetLength +
+
+ Motion<IArgs>.TotalFrames +
Motion<IArgs>.SetOneshotClip(string)
@@ -205,6 +212,15 @@

Type Parameters

Motion<IArgs>.Draw(SpriteBatch)
+
+ Motion<IArgs>.DrawCompanion(SpriteBatch, DrawSnapshot) +
+
+ Motion<IArgs>.DrawShadow(SpriteBatch, DrawSnapshot) +
+
+ Motion<IArgs>.EnqueueRepeatDraws(DrawSnapshot, bool) +
Motion<IArgs>.UpdateDirection()
diff --git a/docs/api/TrinketTinker.Companions.Motions.BaseStaticMotion-1.html b/docs/api/TrinketTinker.Companions.Motions.BaseStaticMotion-1.html index 932705e..d3c533e 100644 --- a/docs/api/TrinketTinker.Companions.Motions.BaseStaticMotion-1.html +++ b/docs/api/TrinketTinker.Companions.Motions.BaseStaticMotion-1.html @@ -168,6 +168,12 @@

Type Parameters

Motion<IArgs>.cs
+
+ Motion<IArgs>.framesetLength +
+
+ Motion<IArgs>.TotalFrames +
Motion<IArgs>.SetOneshotClip(string)
@@ -207,6 +213,15 @@

Type Parameters

Motion<IArgs>.Draw(SpriteBatch)
+
+ Motion<IArgs>.DrawCompanion(SpriteBatch, DrawSnapshot) +
+
+ Motion<IArgs>.DrawShadow(SpriteBatch, DrawSnapshot) +
+
+ Motion<IArgs>.EnqueueRepeatDraws(DrawSnapshot, bool) +
Motion<IArgs>.DirectionFrameStart()
diff --git a/docs/api/TrinketTinker.Companions.Motions.HoverMotion.html b/docs/api/TrinketTinker.Companions.Motions.HoverMotion.html index cbd4c34..64052eb 100644 --- a/docs/api/TrinketTinker.Companions.Motions.HoverMotion.html +++ b/docs/api/TrinketTinker.Companions.Motions.HoverMotion.html @@ -226,7 +226,7 @@

Methods

GetOffset() - +

Get offset

@@ -258,7 +258,7 @@

Returns

GetPositionalLayerDepth(Vector2) - +

Get layer depth based on position

@@ -295,7 +295,7 @@

Returns

UpdateGlobal(GameTime, GameLocation) - +

Update info that should change every tick, for all game instances in multiplayer.

@@ -329,7 +329,7 @@

Parameters

UpdateLocal(GameTime, GameLocation) - +

Update info that should change every tick, for owner only. Netfield changes should happen here.

diff --git a/docs/api/TrinketTinker.Companions.Motions.LerpMotion.html b/docs/api/TrinketTinker.Companions.Motions.LerpMotion.html index e15418a..f8b105b 100644 --- a/docs/api/TrinketTinker.Companions.Motions.LerpMotion.html +++ b/docs/api/TrinketTinker.Companions.Motions.LerpMotion.html @@ -171,6 +171,12 @@

Motion<LerpArgs>.cs

+
+ Motion<LerpArgs>.framesetLength +
+
+ Motion<LerpArgs>.TotalFrames +
Motion<LerpArgs>.SetOneshotClip(string)
@@ -207,6 +213,15 @@

Motion<LerpArgs>.Draw(SpriteBatch)

+
+ Motion<LerpArgs>.DrawCompanion(SpriteBatch, DrawSnapshot) +
+
+ Motion<LerpArgs>.DrawShadow(SpriteBatch, DrawSnapshot) +
+
+ Motion<LerpArgs>.EnqueueRepeatDraws(DrawSnapshot, bool) +
Motion<LerpArgs>.UpdateDirection()
diff --git a/docs/api/TrinketTinker.Companions.Motions.Motion-1.html b/docs/api/TrinketTinker.Companions.Motions.Motion-1.html index 37ea90f..788a5dc 100644 --- a/docs/api/TrinketTinker.Companions.Motions.Motion-1.html +++ b/docs/api/TrinketTinker.Companions.Motions.Motion-1.html @@ -89,7 +89,7 @@
Table of Contents

-Class Motion<TArgs> +Class Motion<TArgs>

@@ -175,7 +175,7 @@

Constructors

Motion(TrinketTinkerCompanion, MotionData, VariantData) - +

Basic constructor, tries to parse arguments as the generic IArgs type.

@@ -214,7 +214,7 @@

Fields

args - +

Class dependent arguments for subclasses

@@ -245,7 +245,7 @@

Field Value

c - +

Companion that owns this motion.

@@ -276,7 +276,7 @@

Field Value

cs - +

Companion animation controller

@@ -307,7 +307,7 @@

Field Value

currAnchorTarget - +

The current anchor target

@@ -336,9 +336,39 @@

Field Value

+

+ framesetLength + +

+ +
+
+ +
+
protected readonly int framesetLength
+
+ + + + +

Field Value

+
+
int
+
+
+ + + + + + + + + +

lightId - +

Light source ID, generated if LightRadius is set in MotionData.

@@ -369,7 +399,7 @@

Field Value

md - +

Data for this motion.

@@ -400,7 +430,7 @@

Field Value

prevAnchorTarget - +

The previous anchor target

@@ -431,7 +461,7 @@

Field Value

vd - +

Data for this motion.

@@ -467,7 +497,7 @@

Properties

AnchorChanged - +

Anchor changed during this tick

@@ -495,6 +525,38 @@

Property Value

+ + +

+ TotalFrames + +

+ +

Actual total frame used for Repeat, equal to frame length

+
+
+ +
+
protected virtual int TotalFrames { get; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + +

Methods

@@ -503,7 +565,7 @@

Methods

CheckSpriteCollision(GameLocation, Vector2) - +

Helper function, check if the sprite collides with anything.

@@ -542,7 +604,7 @@

Returns

Cleanup() - +

Cleanup motion, remove light source.

@@ -569,7 +631,7 @@

DirectionFrameStart() - +

First frame of animation, depending on direction.

@@ -602,7 +664,7 @@

Returns

Draw(SpriteBatch) - +

Draws the companion, for all game instances in multiplayer.

@@ -610,7 +672,7 @@

-
public virtual void Draw(SpriteBatch b)
+
public void Draw(SpriteBatch b)

Parameters

@@ -630,11 +692,113 @@

Parameters

+ + +

+ DrawCompanion(SpriteBatch, DrawSnapshot) + +

+ +

Draw companion from snapshot, enqueue repeat as required

+
+
+ +
+
protected virtual void DrawCompanion(SpriteBatch b, DrawSnapshot snapshot)
+
+ +

Parameters

+
+
b SpriteBatch
+
+
snapshot DrawSnapshot
+
+
+ + + + + + + + + + + + + + +

+ DrawShadow(SpriteBatch, DrawSnapshot) + +

+ +

Draw shadow from snapshot, enqueue repeat as required

+
+
+ +
+
protected virtual void DrawShadow(SpriteBatch b, DrawSnapshot snapshot)
+
+ +

Parameters

+
+
b SpriteBatch
+
+
snapshot DrawSnapshot
+
+
+ + + + + + + + + + + + + + +

+ EnqueueRepeatDraws(DrawSnapshot, bool) + +

+ +

Queue up repeats of the current draw.

+
+
+ +
+
protected void EnqueueRepeatDraws(DrawSnapshot snapshot, bool isShadow)
+
+ +

Parameters

+
+
snapshot DrawSnapshot
+
+
isShadow bool
+
+
+ + + + + + + + + + + +

GetMoving() - +

Moving flag used for basis of anim

@@ -666,7 +830,7 @@

Returns

GetOffset() - +

Get offset

@@ -698,7 +862,7 @@

Returns

GetPositionalLayerDepth(Vector2) - +

Get layer depth based on position

@@ -735,7 +899,7 @@

Returns

GetRotation() - +

Get sprite rotation

@@ -768,7 +932,7 @@

Returns

GetShadowScale() - +

Get shadow draw scale.

@@ -800,7 +964,7 @@

Returns

GetTextureScale() - +

Get texture draw scale.

@@ -832,7 +996,7 @@

Returns

Initialize(Farmer) - +

Initialize motion, setup light source if needed.

@@ -864,7 +1028,7 @@

Parameters

OnOwnerWarp() - +

Update light source when owner changes location

@@ -891,7 +1055,7 @@

SetOneshotClip(string?) - +

Set an oneshot clip, to play once until end

@@ -923,7 +1087,7 @@

Parameters

SetOverrideClip(string?) - +

Set an override clip, to play instead of normal directional animation

@@ -955,7 +1119,7 @@

Parameters

UpdateAnchor(GameTime, GameLocation) - +

Changes the position of the anchor that the companion moves relative to, based on Anchors.

@@ -989,7 +1153,7 @@

Parameters

UpdateDirection() - +

Update companion facing direction using a direction.

@@ -1016,7 +1180,7 @@

UpdateGlobal(GameTime, GameLocation) - +

Update info that should change every tick, for all game instances in multiplayer.

@@ -1050,7 +1214,7 @@

Parameters

UpdateLightSource(GameTime, GameLocation) - +

Reposition the lightsource.

@@ -1084,7 +1248,7 @@

Parameters

UpdateLocal(GameTime, GameLocation) - +

Update info that should change every tick, for owner only. Netfield changes should happen here.

diff --git a/docs/api/TrinketTinker.Companions.Motions.OrbitMotion.html b/docs/api/TrinketTinker.Companions.Motions.OrbitMotion.html index 934fc56..e0bd78f 100644 --- a/docs/api/TrinketTinker.Companions.Motions.OrbitMotion.html +++ b/docs/api/TrinketTinker.Companions.Motions.OrbitMotion.html @@ -89,7 +89,7 @@
Table of Contents

-Class OrbitMotion +Class OrbitMotion

@@ -165,6 +165,12 @@

Motion<OrbitArgs>.cs

+ + @@ -195,6 +201,15 @@

Motion<OrbitArgs>.Draw(SpriteBatch)

+ + + @@ -237,7 +252,7 @@

Constructors

OrbitMotion(TrinketTinkerCompanion, MotionData, VariantData) - +

Companion orbits around a point

@@ -277,7 +292,7 @@

Methods

GetOffset() - +

Get offset

@@ -309,7 +324,7 @@

Returns

GetPositionalLayerDepth(Vector2) - +

Get layer depth based on position

@@ -346,7 +361,7 @@

Returns

GetTextureScale() - +

Get texture draw scale.

@@ -378,7 +393,7 @@

Returns

UpdateGlobal(GameTime, GameLocation) - +

Calculates circular motion using cos for x and sin for y

diff --git a/docs/api/TrinketTinker.Companions.Motions.SerpentMotion.html b/docs/api/TrinketTinker.Companions.Motions.SerpentMotion.html new file mode 100644 index 0000000..77aeef7 --- /dev/null +++ b/docs/api/TrinketTinker.Companions.Motions.SerpentMotion.html @@ -0,0 +1,391 @@ + + + + + Class SerpentMotion | TrinketTinker + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
Table of Contents
+ +
+
+ +
+
+
+ +
+
+ + + +
+ +
+ + + +

+Class SerpentMotion +

+ +
+
Namespace
TrinketTinker.Companions.Motions
+
Assembly
TrinketTinker.dll
+
+ +

Companion has trailing segments and tail, like the royal serpent. +Needs additional sets of sprites for segment(s) and tail.

+
+
+ +
+
public sealed class SerpentMotion : BaseLerpMotion<SerpentArgs>, IMotion
+
+ + + + +
+
Inheritance
+
+ + + +
SerpentMotion
+
+
+ +
+
Implements
+
+ +
+
+ + +
+
Inherited Members
+
+ + + + + + + + + + + + + + + + +
+ + + + + + +

Constructors +

+ + + + +

+ SerpentMotion(TrinketTinkerCompanion, MotionData, VariantData) + +

+ +
+
+ +
+
public SerpentMotion(TrinketTinkerCompanion companion, MotionData mdata, VariantData vdata)
+
+ +

Parameters

+
+
companion TrinketTinkerCompanion
+
+
mdata MotionData
+
+
vdata VariantData
+
+
+ + + + + + + + + + + + +

Properties +

+ + + + +

+ TotalFrames + +

+ +

Total frame, accounting for number of segments

+
+
+ +
+
protected override int TotalFrames { get; }
+
+ + + + + +

Property Value

+
+
int
+
+
+ + + + + + + + +

Methods +

+ + + + +

+ DrawCompanion(SpriteBatch, DrawSnapshot) + +

+ +

Draw companion from snapshot, enqueue repeat as required

+
+
+ +
+
protected override void DrawCompanion(SpriteBatch b, DrawSnapshot snapshot)
+
+ +

Parameters

+
+
b SpriteBatch
+
+
snapshot DrawSnapshot
+
+
+ + + + + + + + + + + + + + +

+ DrawShadow(SpriteBatch, DrawSnapshot) + +

+ +

Do not draw shadow for this motion type it looks bad.

+
+
+ +
+
protected override void DrawShadow(SpriteBatch b, DrawSnapshot snapshot)
+
+ +

Parameters

+
+
b SpriteBatch
+
+
snapshot DrawSnapshot
+
+
+ + + + + + + + + + + + + + +

+ UpdateGlobal(GameTime, GameLocation) + +

+ +

Update info that should change every tick, for all game instances in multiplayer.

+
+
+ +
+
public override void UpdateGlobal(GameTime time, GameLocation location)
+
+ +

Parameters

+
+
time GameTime
+
+
location GameLocation
+
+
+ + + + + + + + + + + + + +
+ + + +
+ +
+ +
+
+ +
+ + + + diff --git a/docs/api/TrinketTinker.Companions.Motions.html b/docs/api/TrinketTinker.Companions.Motions.html index d4a9e59..037b42b 100644 --- a/docs/api/TrinketTinker.Companions.Motions.html +++ b/docs/api/TrinketTinker.Companions.Motions.html @@ -137,6 +137,12 @@

RelativeMotion

Companion's offset is adjusted depending on player facing direction

+
+
+
+
SerpentMotion
+

Companion has trailing segments and tail, like the royal serpent. +Needs additional sets of sprites for segment(s) and tail.

diff --git a/docs/api/TrinketTinker.Effects.Abilities.Ability-1.html b/docs/api/TrinketTinker.Effects.Abilities.Ability-1.html index b72deaf..2d8be88 100644 --- a/docs/api/TrinketTinker.Effects.Abilities.Ability-1.html +++ b/docs/api/TrinketTinker.Effects.Abilities.Ability-1.html @@ -134,7 +134,6 @@

Type Parameters

- diff --git a/docs/api/TrinketTinker.Effects.Abilities.html b/docs/api/TrinketTinker.Effects.Abilities.html index 340360c..dd50aae 100644 --- a/docs/api/TrinketTinker.Effects.Abilities.html +++ b/docs/api/TrinketTinker.Effects.Abilities.html @@ -112,11 +112,6 @@

BuffAbility

Applies a buff on proc.

-
-
-
-
DebugDummyAbility
-

Prints many logs, doesn't do anything else.

diff --git a/docs/api/TrinketTinker.Extras.TrinketColorizer.html b/docs/api/TrinketTinker.Extras.TrinketColorizer.html index 668c305..49f0634 100644 --- a/docs/api/TrinketTinker.Extras.TrinketColorizer.html +++ b/docs/api/TrinketTinker.Extras.TrinketColorizer.html @@ -414,7 +414,7 @@

Parameters

OutputTinkerAnvil(Object, Item, bool, MachineItemOutput, Farmer, out int?) - +

Change trinket level.

diff --git a/docs/api/TrinketTinker.Models.AbilityData.html b/docs/api/TrinketTinker.Models.AbilityData.html index d2b0ce5..2daaad2 100644 --- a/docs/api/TrinketTinker.Models.AbilityData.html +++ b/docs/api/TrinketTinker.Models.AbilityData.html @@ -89,7 +89,7 @@
Table of Contents

-Class AbilityData +Class AbilityData

@@ -158,7 +158,7 @@

Properties

AbilityClass - +

Type name of the ability, can use short form like "Buff" for buff ability.

@@ -190,7 +190,7 @@

Property Value

Condition - +

Condition, see StardewValley.GameStateQuery

@@ -222,7 +222,7 @@

Property Value

DamageThreshold - +

Minimum damage dealt or received before proc.
@@ -255,7 +255,7 @@

Property Value

Description - +

String description of what this ability does, will be passed to trinket item description and replace {1}

@@ -287,7 +287,7 @@

Property Value

IsBomb - +

Requires the damage be caused by a bomb (true), or not caused by a bomb (false).
@@ -320,7 +320,7 @@

Property Value

IsCriticalHit - +

Requires the damage to be critical hit (true), or not a critical hit (false).
@@ -353,7 +353,7 @@

Property Value

Proc - +

Determine when this ability activates.

@@ -385,7 +385,7 @@

Property Value

ProcSound - +

Sound cue to play on proc.

@@ -417,7 +417,7 @@

Property Value

ProcSyncIndex - +

For Sync

@@ -449,7 +449,7 @@

Property Value

ProcTAS - +

Temporary animated sprite to spawn on proc, each item is the id of an entry in the mushymato.TrinketTinker/TAS asset.

@@ -481,7 +481,7 @@

Property Value

ProcTimer - +

Minimum cooldown time between ability activation, all ProcOn values respect this, not just Timer.

diff --git a/docs/api/TrinketTinker.Models.MotionArgs.LerpArgs.html b/docs/api/TrinketTinker.Models.MotionArgs.LerpArgs.html index 675633e..37266db 100644 --- a/docs/api/TrinketTinker.Models.MotionArgs.LerpArgs.html +++ b/docs/api/TrinketTinker.Models.MotionArgs.LerpArgs.html @@ -129,6 +129,7 @@

BounceArgs

+
diff --git a/docs/api/TrinketTinker.Models.MotionArgs.OrbitArgs.html b/docs/api/TrinketTinker.Models.MotionArgs.OrbitArgs.html index 695172f..ee3c0b1 100644 --- a/docs/api/TrinketTinker.Models.MotionArgs.OrbitArgs.html +++ b/docs/api/TrinketTinker.Models.MotionArgs.OrbitArgs.html @@ -157,6 +157,38 @@

Properties

+ + +

+ Period + +

+ +

Orbit period

+
+
+ +
+
public float Period { get; set; }
+
+ + + + + +

Property Value

+
+
float
+
+
+ + + + + + + +

@@ -229,7 +261,7 @@

Methods

Validate() - +

diff --git a/docs/api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html b/docs/api/TrinketTinker.Models.MotionArgs.SerpentArgs.html similarity index 56% rename from docs/api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html rename to docs/api/TrinketTinker.Models.MotionArgs.SerpentArgs.html index 73feeae..815df9d 100644 --- a/docs/api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html +++ b/docs/api/TrinketTinker.Models.MotionArgs.SerpentArgs.html @@ -2,11 +2,11 @@ - Class DebugDummyAbility | TrinketTinker + Class SerpentArgs | TrinketTinker - + - + @@ -16,7 +16,7 @@ - + @@ -84,25 +84,25 @@
Table of Contents

-
+
-

-Class DebugDummyAbility +

+Class SerpentArgs

-
Namespace
TrinketTinker.Effects.Abilities
+
Namespace
TrinketTinker.Models.MotionArgs
Assembly
TrinketTinker.dll
-

Prints many logs, doesn't do anything else.

+

Hop args

-
public sealed class DebugDummyAbility : Ability<NoArgs>, IAbility
+
public sealed class SerpentArgs : LerpArgs, IArgs
@@ -112,15 +112,15 @@

object

- -
DebugDummyAbility
+ +
SerpentArgs
Implements
- +
@@ -129,22 +129,25 @@

Ability<NoArgs>.Name + LerpArgs.Min

+
object.Equals(object) @@ -171,79 +174,66 @@

Constructors +

Properties

- + -

- DebugDummyAbility(TrinketTinkerEffect, AbilityData, int) - +

+ SegmentCount +

-

Prints many logs, doesn't do anything else.

+

Number of segments, not including head

-
public DebugDummyAbility(TrinketTinkerEffect effect, AbilityData data, int lvl)
+
public int SegmentCount { get; set; }
-

Parameters

-
-
effect TrinketTinkerEffect
-
-
data AbilityData
-
-
lvl int
-
-
- - +

Property Value

+
+
int
+
+
-

Methods -

- + -

- ApplyEffect(ProcEventArgs) - +

+ Sparcity +

-

Print debug log.

+

How spaced out each segment is

-
protected override bool ApplyEffect(ProcEventArgs proc)
+
public float Sparcity { get; set; }
-

Parameters

-
-
proc ProcEventArgs
-
-
-

Returns

-
-
bool
-
-
+

Property Value

+
+
float
+
+
diff --git a/docs/api/TrinketTinker.Models.MotionArgs.html b/docs/api/TrinketTinker.Models.MotionArgs.html index ccf26c5..5cf7335 100644 --- a/docs/api/TrinketTinker.Models.MotionArgs.html +++ b/docs/api/TrinketTinker.Models.MotionArgs.html @@ -117,6 +117,11 @@

OrbitArgs

Orbit args

+
+
+
+
SerpentArgs
+

Hop args

diff --git a/docs/api/TrinketTinker.Models.MotionData.html b/docs/api/TrinketTinker.Models.MotionData.html index 47b4b96..6f78884 100644 --- a/docs/api/TrinketTinker.Models.MotionData.html +++ b/docs/api/TrinketTinker.Models.MotionData.html @@ -157,7 +157,7 @@

Fields

AnimClips - +

Repository of anim clips that can be shown in place of the default movement anim. @@ -607,54 +607,22 @@

Property Value

- + -

- RepeatInternval - -

- -

Number of miliseconds between repeats.

-
-
- -
-
public float RepeatInternval { get; set; }
-
- - - - - -

Property Value

-
-
float
-
-
- - - - - - - - - - -

- Segment - +

+ RepeatFrameSets +

-

Draw segments, requiring additional sets of sprites for the segment(s).
-Example with Segment = 3 DirectionMode = R and FrameLength = 4, requiring sprites for "segment 1", "segment 2", and "tail".

-
  • The initial "head" need 4 frames, taking up frames 0 to 3.
  • "segment 1" need 4 frames, taking up frames 4 to 7.
  • "segment 2" need 4 frames, taking up frames 8 to 11.
  • Finally, the "tail" need 4 frames, taking up frames 12 to 16.
-Spritesheet needs a total of 16 frames. +

When used with repeat, apply offset of this value times number of frames (per direction mode and frame length).
+Example with RepeatFrameSets = 2 DirectionMode = R and FrameLength = 4.

+
  • The initial companion need 4 frames, taking up frames 0 to 3.
  • First repeat companion need 4 frames, taking up frames 4 to 7.
  • Second repeat companion need 4 frames, taking up frames 8 to 11.
+Spritesheet needs a total of 12 frames.
-
public int Segment { get; set; }
+
public int RepeatFrameSets { get; set; }
@@ -674,19 +642,19 @@

Property Value

- + -

- SegmentInterval - +

+ RepeatInterval +

-

Draw interval between segments.

+

Number of miliseconds between repeats.

-
public float SegmentInterval { get; set; }
+
public float RepeatInterval { get; set; }
@@ -706,39 +674,6 @@

Property Value

- - -

- SegmentLength - -

- -

Number of times to draw each middle segment, multiple segments will be drawn in alternating pattern. -If this is 5 and there were 3 segments (so Segment is 4), the total number of segments drawn will be 15.

-
-
- -
-
public int SegmentLength { get; set; }
-
- - - - - -

Property Value

-
-
int
-
-
- - - - - - - -

Methods

@@ -747,7 +682,7 @@

Methods

GetIdleAnim(int) - +

diff --git a/docs/api/TrinketTinker.Models.ProcOn.html b/docs/api/TrinketTinker.Models.ProcOn.html index 1ebd126..6b5fdc0 100644 --- a/docs/api/TrinketTinker.Models.ProcOn.html +++ b/docs/api/TrinketTinker.Models.ProcOn.html @@ -90,7 +90,7 @@
Table of Contents

-Enum ProcOn +Enum ProcOn

diff --git a/docs/api/toc.html b/docs/api/toc.html index bc965d8..0aa2d70 100644 --- a/docs/api/toc.html +++ b/docs/api/toc.html @@ -27,6 +27,9 @@ TrinketTinker.Companions.Anim
-

HarvestStone

+

HarvestCrop

Harvest nearby crops, professions and exp applies. Will not harvest crops in a pot.

Can use with AnchorMode.Crop to make companion seek out crops.

diff --git a/docs/guide/5-TAS.html b/docs/guide/5-Temporary Animated Sprite.html similarity index 99% rename from docs/guide/5-TAS.html rename to docs/guide/5-Temporary Animated Sprite.html index 3777ee0..d1cb748 100644 --- a/docs/guide/5-TAS.html +++ b/docs/guide/5-Temporary Animated Sprite.html @@ -16,7 +16,7 @@ - + diff --git a/docs/guide/6-Extras.html b/docs/guide/6-Extras.html index 4ef4e02..0e549cc 100644 --- a/docs/guide/6-Extras.html +++ b/docs/guide/6-Extras.html @@ -95,9 +95,9 @@

Item Query: mushymato. Useful for producing a trinket at specified level/variant.

Machine: Trinket Colorizer Trinket Colorizer

A new machine that can be purchased from the Blacksmith for 50 Gold Bars once the Anvil recipe is obtained.

-

Consumes 3 Star Shards to reroll the variant on a TrinketTinker trinket, no effect on vanilla trinkets.

-

The Trinket Colorizer is just a normal machine with qualified id (BC)mushymato.TrinketTinker_TrinketColorizer, mods are free to add their own machine rules.

-

By default, the colorizer will never roll the same variant twice in a row. Anvils have similar rule applied to them, for TrinketTinker trinkets only.

+

Consumes 15 Omni Geode to reroll the variant on a TrinketTinker trinket, no effect on vanilla trinkets.

+

The colorizer will never roll the same variant twice in a row. Anvils have similar rule applied to them for TrinketTinker trinkets.

+

Implementation wise, the Trinket Colorizer is a standard machine with qualified ID (BC)mushymato.TrinketTinker_TrinketColorizer and a single complex output machine rule. Mods are free to disregard

diff --git a/docs/guide/toc.html b/docs/guide/toc.html index edc0a5b..2e78369 100644 --- a/docs/guide/toc.html +++ b/docs/guide/toc.html @@ -52,6 +52,9 @@
  • Hop
  • +
  • + Serpent +
  • Static
  • @@ -78,9 +81,6 @@ Ability Classes
  • - TAS + Temporary Animated Sprite
  • Extras diff --git a/docs/guide/toc.json b/docs/guide/toc.json index 41853d0..9f7d50d 100644 --- a/docs/guide/toc.json +++ b/docs/guide/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"Trinket","href":"0-Trinket.html","topicHref":"0-Trinket.html"},{"name":"Tinker","href":"1-Tinker.html","topicHref":"1-Tinker.html"},{"name":"Variant","href":"2-Variant.html","topicHref":"2-Variant.html"},{"name":"Motion","href":"3-Motion.html","topicHref":"3-Motion.html","items":[{"name":"Direction","href":"3.0-Direction.html","topicHref":"3.0-Direction.html"},{"name":"Anchors","href":"3.1-Anchors.html","topicHref":"3.1-Anchors.html"},{"name":"Animation Clips","href":"3.2-Animation%20Clips.html","topicHref":"3.2-Animation%20Clips.html"},{"name":"Motion Classes","items":[{"name":"Lerp","href":"3.z.000-Lerp.html","topicHref":"3.z.000-Lerp.html"},{"name":"Hover","href":"3.z.001-Hover.html","topicHref":"3.z.001-Hover.html"},{"name":"Bounce","href":"3.z.002-Bounce.html","topicHref":"3.z.002-Bounce.html"},{"name":"Hop","href":"3.z.003-Hop.html","topicHref":"3.z.003-Hop.html"},{"name":"Static","href":"3.z.100-Static.html","topicHref":"3.z.100-Static.html"},{"name":"Orbit","href":"3.z.101-Orbit.html","topicHref":"3.z.101-Orbit.html"},{"name":"Relative","href":"3.z.102-Relative.html","topicHref":"3.z.102-Relative.html"}]}]},{"name":"Ability","href":"4-Ability.html","topicHref":"4-Ability.html","items":[{"name":"Proc","href":"4.0-Proc.html","topicHref":"4.0-Proc.html"},{"name":"Ability Classes","items":[{"name":"DebugDummy","href":"4.z.0-DebugDummy.html","topicHref":"4.z.0-DebugDummy.html"},{"name":"Buff","href":"4.z.01-Buff.html","topicHref":"4.z.01-Buff.html"},{"name":"Health","href":"4.z.02-Health.html","topicHref":"4.z.02-Health.html"},{"name":"Stamina","href":"4.z.03-Stamina.html","topicHref":"4.z.03-Stamina.html"},{"name":"ItemDrop","href":"4.z.04-ItemDrop.html","topicHref":"4.z.04-ItemDrop.html"},{"name":"Hitscan","href":"4.z.05-Hitscan.html","topicHref":"4.z.05-Hitscan.html"},{"name":"Projectile","href":"4.z.06-Projectile.html","topicHref":"4.z.06-Projectile.html"},{"name":"RaiseTrigger","href":"4.z.07-RaiseTrigger.html","topicHref":"4.z.07-RaiseTrigger.html"},{"name":"Action","href":"4.z.08-Action.html","topicHref":"4.z.08-Action.html"},{"name":"HoeDirt","href":"4.z.09-HoeDirt.html","topicHref":"4.z.09-HoeDirt.html"},{"name":"HarvestForage","href":"4.z.10-HarvestForage.html","topicHref":"4.z.10-HarvestForage.html"}]}]},{"name":"TAS","href":"5-TAS.html","topicHref":"5-TAS.html"},{"name":"Extras","href":"6-Extras.html","topicHref":"6-Extras.html"}],"pdf":false} +{"items":[{"name":"Trinket","href":"0-Trinket.html","topicHref":"0-Trinket.html"},{"name":"Tinker","href":"1-Tinker.html","topicHref":"1-Tinker.html"},{"name":"Variant","href":"2-Variant.html","topicHref":"2-Variant.html"},{"name":"Motion","href":"3-Motion.html","topicHref":"3-Motion.html","items":[{"name":"Direction","href":"3.0-Direction.html","topicHref":"3.0-Direction.html"},{"name":"Anchors","href":"3.1-Anchors.html","topicHref":"3.1-Anchors.html"},{"name":"Animation Clips","href":"3.2-Animation%20Clips.html","topicHref":"3.2-Animation%20Clips.html"},{"name":"Motion Classes","items":[{"name":"Lerp","href":"3.z.000-Lerp.html","topicHref":"3.z.000-Lerp.html"},{"name":"Hover","href":"3.z.001-Hover.html","topicHref":"3.z.001-Hover.html"},{"name":"Bounce","href":"3.z.002-Bounce.html","topicHref":"3.z.002-Bounce.html"},{"name":"Hop","href":"3.z.003-Hop.html","topicHref":"3.z.003-Hop.html"},{"name":"Serpent","href":"3.z.004-Serpent.html","topicHref":"3.z.004-Serpent.html"},{"name":"Static","href":"3.z.100-Static.html","topicHref":"3.z.100-Static.html"},{"name":"Orbit","href":"3.z.101-Orbit.html","topicHref":"3.z.101-Orbit.html"},{"name":"Relative","href":"3.z.102-Relative.html","topicHref":"3.z.102-Relative.html"}]}]},{"name":"Ability","href":"4-Ability.html","topicHref":"4-Ability.html","items":[{"name":"Proc","href":"4.0-Proc.html","topicHref":"4.0-Proc.html"},{"name":"Ability Classes","items":[{"name":"Buff","href":"4.z.01-Buff.html","topicHref":"4.z.01-Buff.html"},{"name":"Health","href":"4.z.02-Health.html","topicHref":"4.z.02-Health.html"},{"name":"Stamina","href":"4.z.03-Stamina.html","topicHref":"4.z.03-Stamina.html"},{"name":"ItemDrop","href":"4.z.04-ItemDrop.html","topicHref":"4.z.04-ItemDrop.html"},{"name":"Hitscan","href":"4.z.05-Hitscan.html","topicHref":"4.z.05-Hitscan.html"},{"name":"Projectile","href":"4.z.06-Projectile.html","topicHref":"4.z.06-Projectile.html"},{"name":"RaiseTrigger","href":"4.z.07-RaiseTrigger.html","topicHref":"4.z.07-RaiseTrigger.html"},{"name":"Action","href":"4.z.08-Action.html","topicHref":"4.z.08-Action.html"},{"name":"HoeDirt","href":"4.z.09-HoeDirt.html","topicHref":"4.z.09-HoeDirt.html"},{"name":"HarvestForage","href":"4.z.10-HarvestForage.html","topicHref":"4.z.10-HarvestForage.html"}]}]},{"name":"Temporary Animated Sprite","href":"5-Temporary%20Animated%20Sprite.html","topicHref":"5-Temporary%20Animated%20Sprite.html"},{"name":"Extras","href":"6-Extras.html","topicHref":"6-Extras.html"}],"pdf":false} diff --git a/docs/images/demo/repeat.png b/docs/images/demo/repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..74e8badaeaaef07e7aaae17d6eeebc8fd673d06c GIT binary patch literal 147046 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

    OaZ|rVxzWJM`=WnJqD9BTj@T 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 literal 0 HcmV?d00001 diff --git a/docs/images/sheets/rl-repeat-2.png b/docs/images/sheets/rl-repeat-2.png new file mode 100644 index 0000000000000000000000000000000000000000..019b9c555f9d400c9eaf3ba8ec6615976f3bf353 GIT binary patch literal 1858 zcmcK5do^OUfmT!mbf= zDKsvvDVK7;9@e7{Bqr~_MFbyv*+x#XZMfy`M!U>=Xu`GdCwb7wm5|n zQxXFJ07W9=t%QjauDWdqVdcDb69z2O)7Y3yGB!qE_VaP~^mYS)gUk@7KCzK3cf;~5 zK|NW*U1~b<{_)oYf-+4$hOF8rR&@OP=K{$zj+(k=d^oMXKC`(nBDSnpqBtB4fg?Zj za;Gr+hEnD1n}UY<2Ha-2Wduv1Gh)n_kiX|Rs-vA(BYpxPDu_R!MHkInWYX5Zea)pF3XNvX8Zh>`o^ zv52A!1xq%P*B#;P%C&3jzS`SrIJ4~LS1?w{V7kJNOpzT7A(hpPBJ1=tK~e)LYopoM zpoJ0Um^J91{@%6KGZU!y;I&UJ(+)W=-VwOl#_onOFY-pJ9u)-FjZ0|#O0hlNoE*-H zydWK9nB&t9HkRY4ovd?{$`2)RDelQNFbRn;zKmPR%JbmTE0;DF{U??{n;btDso{|- z0Ek{C;f*Lk>2nS}@uO&Qe~YyylQG#{O#0X!dtzEsyesFPZjjBRH>Poqk*?h?Pt5Mh z^rHi;1@SWv4ivIB7O^fmN$0s&OjKe7PY`S+wQPD>Q9C|}Uld4Q#o#;~Z^*y%LN;$) z!J?}}*~Dmyb(EuC9!wYPolUL34^$f15!!b6$$`)OOhIqNSc3Q(nep&;*R6REgoyN| z4#_k?cHd%OcU~1)KtoXlBtf88zBaEtr~{ZbAak#~#8DU>%tP|i_F&Q+$Iv7hmc}F0 z?1yTxbt0CzUn4T#&Wc)c2H?S^i1Sc@;2MY&OvGmGU<3jv1z-+P(gX%zSOvdyej3r#(kSJ>LqXI*_UP;JeyvH=LNPRJ>rtbHPxV=X*T zUNAvpEFph-`rNP%%TJ?Mt}`rQ$zg0D(<`p+75gm-WQiZ63b*pSnJyPIZxO0`5azzo zNmIIcMC9G-Ld5piu%^}O;VycpxisG81^P^xXjQRx1P$fye{F}ia8}fr;8%n2L(z4* zM2G6bn4FK8sjUuiCm2zGH3~F)dA6i616JfAY^<+yb)`aDdSPh@AAeR2lU-B$2J*#V zvV(nC^ca3~d8c8sCzkSM2|+HeDQBZA&M)$<=Qys zwlpo&DWiA1{tax4dX_E;fCH#Pll3K3dC6-8>F7ZrE>~(s9R?VwDO8m0aGco@) zJcM2{0AH%vEbF2F1tx{N{y~U&JD~?JVT{IP`(A$qxd^kB%A#)@-o%V_;WFkwVfK8& zY>+Y)Vm6SsFr`jzVQvFapMxnL_B&?jCZ?*$Kf)yckC=2*hEvFT5;UYj)?4XnTmjuZ zww~dJxu``%NdfFngzI*nOE?PU55N empty Ordered list of anchors to follow, if not set, fall back to following the player AlwaysMoving bool false By default the companion only animates while the player is moving, setting this to true makes the companion continue their animation. FrameStart int 0 First frame/sprite index of the directional animations, set this if you want to put multiple companions on 1 file. FrameLength int 4 Length of each cycle for directional animations. Interval float 100 Milisecond Interval between animation frames. Offset Vector2 0, 0 Constant offset to apply to the companion, on top of the motion. LayerDepth LayerDepth Position Changes draw layer relative to player. Position: Calculate layer based on Y position Behind: Always behind the player. InFront: Always infront of the player RepeatCount int 0 Number of additional repeat draws to do, to make 1 companion appear to be multiple. RepeatInternval int 1000 Miliseconds between repeat draws. AnimClips Dictionary empty Named anim clips that can play over the movement animation. Args Dictionary varies Arguments specific to a motion class, see respective page for details. Animation The default animation behavior for a companion is to animate while the player is moving according to direction mode, and display static first frame when player is still. To use a special animation while player is still, add an AnimClip named \"Idle.0\". If the idle animation should change according to direction, add \"Idle.X\" where \"X\" is a number between 1 to 4, depending on how many directions are available for the chosen DirectionMode. To have the directional animation continue regardless of player motion, set AlwaysMoving to true." + "keywords": "Motion Motion describes how the companion moves and animates. There are 2 main kinds of motion implemented in by this mod. Lerp: the companion moves to follow whenever the anchor moves far enough. If the anchor is too far, teleport over. Static: the companion stays at a fixed position relative to the anchor. Each of these have sub types like Hover for Lerp motion that hovers, see the individual pages on the sidebar for details. The term \"anchor\" refers to a position that the companion derives it's own position from. By default this is the player, but it can also be other entities like a monster. Structure Property Type Default Notes MotionClass string Lerp Type name of the motion class to use, can use short name like \"Lerp\". Refer to pages under Motion Classes in the table of contents for details. DirectionMode DirectionMode Single Determines how the trinket behaves when changing directions and controls what sprites are required. DirectionRotation bool false When true, the sprite will rotate depending on direction, the exact behavior depends the motion class. LoopMode LoopMode Standard Control animation playback. Standard: 1 2 3 4 1 2 3 4 PingPong: 1 2 3 4 3 2 1 Anchors List empty Ordered list of anchors to follow, if not set, fall back to following the player AlwaysMoving bool false By default the companion only animates while the player is moving, setting this to true makes the companion continue their animation. FrameStart int 0 First frame/sprite index of the directional animations, set this if you want to put multiple companions on 1 file. FrameLength int 4 Length of each cycle for directional animations. Interval float 100 Milisecond Interval between animation frames. Offset Vector2 0, 0 Constant offset to apply to the companion, on top of the motion. LayerDepth LayerDepth Position Changes draw layer relative to player. Position: Calculate layer based on Y position Behind: Always behind the player. InFront: Always infront of the player RepeatCount int 0 Number of additional repeat draws to do, to make 1 companion appear to be multiple. Putting a big number here may cause performance issues. RepeatInterval int 1000 Miliseconds between repeat draws. RepeatFrameSets int 0 If set, offset the sprite on repeat draw. AnimClips Dictionary empty Named anim clips that can play over the movement animation. Args Dictionary varies Arguments specific to a motion class, see respective page for details. Animation The default animation behavior for a companion is to animate while the player is moving according to direction mode, and display static first frame when player is still. To use a special animation while player is still, add an AnimClip named \"Idle.0\". If the idle animation should change according to direction, add \"Idle.X\" where \"X\" is a number between 1 to 4, depending on how many directions are available for the chosen DirectionMode. See animation clips for details. To have the directional animation continue regardless of player motion, set AlwaysMoving to true. Repeat Draws One trinket can only have one companion, but it's possible to make this companion appear as multiple entities by repeating draws with a delay, creating \"shadow clones\". Abilities only happen relative to the first, original copy of the companion. To give these clones alternate appearances, extend the spritesheet downward with a modified duplicate of the companion's animations containing the same number of frames as the original. Then, set RepeatFrameSets to the number of these duplicate frames. Example RepeatCount: 2 RepeatFrameSets: 3 Spritesheet" }, "guide/3.0-Direction.html": { "href": "guide/3.0-Direction.html", @@ -37,7 +37,7 @@ "guide/3.2-Animation Clips.html": { "href": "guide/3.2-Animation Clips.html", "title": "Animation Clips | TrinketTinker", - "keywords": "Animation Clips Beyond the basic directional movement animation, companions can also have special animation states triggered by either a motion or an ability. These extra animations must live on the same sprite sheet and have the start frame + frame length specified in AnimData, with the right key. Animation clips can be played back once (oneshot), or continuously played over the directional movement animation (override). Structure Property Type Default Notes FrameStart int 0 First frame/sprite index of the animation clip. FrameLength int 4 Length of the animation clip. LoopMode LoopMode Standard Control animation playback. Standard: 1 2 3 4 1 2 3 4 PingPong: 1 2 3 4 3 2 1 Interval float empty Milisecond Interval between animation frames. If this is not set, use the Motion's interval." + "keywords": "Animation Clips Beyond the basic directional movement animation, companions can also have special animation states triggered by either a motion or an ability. These extra animations must live on the same sprite sheet and have the start frame + frame length specified in AnimData, with the right key. Animation clips can be played back once (oneshot), or continuously played over the directional movement animation (override). This is decided by particular motions/abilities that request the animation. Structure Property Type Default Notes FrameStart int 0 First frame/sprite index of the animation clip. FrameLength int 4 Length of the animation clip. LoopMode LoopMode Standard Control animation playback. Standard: 1 2 3 4 1 2 3 4 PingPong: 1 2 3 4 3 2 1 Interval float empty Milisecond Interval between animation frames. If this is not set, use the Motion's interval. AnimClip Keys Idle Animation Applies when the player is not moving. Does nothing if companion is marked AlwaysMoving, as their directional animation will simply continue. Key Note \"Idle.1\" For the first direction, Down if DRUL. \"Idle.2\" For the second direction, Right if DRUL \"Idle.3\" For the third direction, Up if DRUL. \"Idle.4\" For the fourth direction, Left if DRUL. \"Idle.0\" General directionless idle animation. Motion Specific State Animation Applies when a particular motion enters alternate state beyond the simple moving vs idle. Key Source Note \"Perching\" Hover Applies when companion perches on the player after a timeout. \"Jump\" Bounce and Hop Applies when the companion jumped." }, "guide/3.z-Motion Classes.html": { "href": "guide/3.z-Motion Classes.html", @@ -47,22 +47,27 @@ "guide/3.z.000-Lerp.html": { "href": "guide/3.z.000-Lerp.html", "title": "Lerp | TrinketTinker", - "keywords": "Lerp The companion follows the anchor at a distance. They will move as fast as they need to in order to stay within the desired distance. Lerp motion operate by this logic, using a lerp variable between 0 and 1. If the companion is too far (>Max) from the anchor position, teleport to the anchor. If the companion is far enough (>Min) from the anchor position, Record companion current position as start. Pick an end position based on the anchor. Enter lerping state. When start and end positions are set, increase lerp by value relative to elapsed game time, then calculate companion position with start + (end - start) * lerp. Once lerp reach 1 (and thus the companion reached the end position), exit lerping state. This completes 1 lerp step, and the companion will try to initiate new lerp state in the next game update tick. Args Property Type Default Notes Min float 80 Min distance from anchor, the companion does not move until they are this far from the anchor. Max float 640 Max distance from anchor, if the companion is farther away than this, teleport. Rate float 400 Miliseconds needed to complete 1 lerp, higher number makes companion take larger but slower lerp steps. Pause float 0 Pause between picking next position to lerp to. MoveSync bool false When true, only allow companion to move when the player moves. Jitter float 0f Add randomness to movement, if greater than 0 and AlwaysMoving is true, the companion will randomly move around the anchor while within minimum range." + "keywords": "Lerp The companion follows the anchor at a distance. They will move as fast as they need to in order to stay within the desired distance. Lerp motion operate by this logic, using a lerp variable between 0 and 1. If the companion is too far (>Max) from the anchor position, teleport to the anchor. If the companion is far enough (>Min) from the anchor position, Record companion current position as start. Pick an end position based on the anchor. Enter lerping state. When start and end positions are set, increase lerp by value relative to elapsed game time, then calculate companion position with start + (end - start) * lerp. Once lerp reach 1 (and thus the companion reached the end position), exit lerping state. This completes 1 lerp step, and the companion will try to initiate new lerp state in the next game update tick. Args Property Type Default Notes Min float 96 Min distance from anchor, the companion does not move until they are this far from the anchor. Max float 1280 Max distance from anchor, if the companion is farther away than this, teleport. Rate float 400 Miliseconds needed to complete 1 lerp, higher number makes companion take larger but slower lerp steps. Pause float 0 Pause between picking next position to lerp to. MoveSync bool false When true, only allow companion to move when the player moves. Jitter float 0f Add randomness to movement, if greater than 0 and AlwaysMoving is true, the companion will randomly move around the anchor while within minimum range." }, "guide/3.z.001-Hover.html": { "href": "guide/3.z.001-Hover.html", "title": "Hover | TrinketTinker", - "keywords": "Hover Like Lerp motion, but the companion is drawn some distance away from their shadow, making them seem like they are hovering. They also do a little bit of periodic bobbing motion. The offset can be controlled with motion offset. Args Property Type Default Notes Magnitude float 16 Amount of up and down bobbing in pixels. Period float 800 Period of the bobbing motion in miliseconds. PerchingTimeout float empty If set, companion will try to perch on the player when the player is still for this many miliseconds. PerchingOffset Vector2 0,0 Postion offset when perching, must use the string \"x,y\" format. *and all arguments of Lerp Perching When PerchingTimeout is set to a non-null value, the companion will \"land\" on the player's head after the timeout elapses. To have the companion show an alternate animation, set a \"Perching\" animation clip with the desired frame start, frame length, etc. PerchingOffset changes the perching position." + "keywords": "Hover Like Lerp motion, but the companion is drawn some distance away from their shadow, making them seem like they are hovering. They also do a little bit of periodic bobbing motion. The offset can be controlled with motion offset. Args Property Type Default Notes Magnitude float 16 Amount of up and down bobbing in pixels. Period float 800 Period of the bobbing motion in miliseconds. PerchingTimeout float empty If set, companion will try to perch on the player when the player is still for this many miliseconds. PerchingOffset Vector2 0,0 Postion offset when perching, must use the string \"x,y\" format. *and all arguments of Lerp Perching When PerchingTimeout is set to a non-null value, the companion will \"land\" on the player's head after the timeout elapses. To have the companion show an alternate animation, set a \"Perching\" animation clip with the desired frame start, frame length, etc. PerchingOffset changes the perching position, relative to hover position." }, "guide/3.z.002-Bounce.html": { "href": "guide/3.z.002-Bounce.html", "title": "Bounce | TrinketTinker", - "keywords": "Bounce Like Lerp motion, but the companion bounces up and down periodically. To have the companion show an alternate animation while bouncing, set a \"Jump\" animation clip with the desired frame start, frame length, etc. The difference between Bounce and Hop is that bounce calculates bounces independent of lerp start and end, it also provides squashing for deforming the sprite when hitting the ground. Args Property Type Default Notes MaxHeight float 96 Height of bounce. Squash bool true Companion sprite squishes a bit when hitting the ground. Period float 800 Length of each bounce in miliseconds. *and all arguments of Lerp" + "keywords": "Bounce Like Lerp motion, but the companion bounces up and down periodically. To have the companion show an alternate animation while bouncing, set a \"Jump\" animation clip with the desired frame start, frame length, etc. The difference between Bounce and Hop is that bounce calculates bounces independent of lerp start and end, it also provides squashing for deforming the sprite when hitting the ground. Args Property Type Default Notes MaxHeight float 96 Height of bounce. Squash float 0f Amount of squish to apply when companion hits the ground. Period float 400 Length of each bounce in miliseconds. *and all arguments of Lerp" }, "guide/3.z.003-Hop.html": { "href": "guide/3.z.003-Hop.html", "title": "Bounce | TrinketTinker", - "keywords": "Bounce Like Lerp motion, but the companion leaps from point to point, following the start and end positions set by lerp. To have the companion show an alternate animation while bouncing, set a \"Jump\" animation clip with the desired frame start, frame length, etc. The difference between Hop and Bounce is that hop is synchronized with lerp start and end positions. Args Property Type Default Notes MaxHeight float 128 Height of bounce. *and all arguments of Lerp" + "keywords": "Bounce Like Lerp motion, but the companion leaps from point to point, following the start and end positions set by lerp. To have the companion show an alternate animation while bouncing, set a \"Jump\" animation clip with the desired frame start, frame length, etc. The difference between Hop and Bounce is that hop is synchronized with lerp start and end positions. Due ot reliance on lerp, hop motion appears janky in multiplayer. Args Property Type Default Notes MaxHeight float 128 Height of bounce. *and all arguments of Lerp" + }, + "guide/3.z.004-Serpent.html": { + "href": "guide/3.z.004-Serpent.html", + "title": "Serpent | TrinketTinker", + "keywords": "Serpent Draws additional body segments that follow the base sprite, which is treated as the head. Requires 2 additional sets of sprites for the body segments and tail. The number per set required is the determined by direction and frame length, just like the base sprite number. A minimal serpent would require just 3 sprites (head, segment, tail), using direction mode Single with frame length of 1. Serpent frame To have the head rotate as well, set DirectionRotate to true. Args Property Type Default Notes SegmentCount int 5 Number of segments to draw, excluding the head. Putting a big number here may cause performance issues. Sparcity float 3.5 Factor determining how spaced out each segment is. The default value of 3.5 gives a little bit of overlap between segments. *and all arguments of Lerp" }, "guide/3.z.100-Static.html": { "href": "guide/3.z.100-Static.html", @@ -72,7 +77,7 @@ "guide/3.z.101-Orbit.html": { "href": "guide/3.z.101-Orbit.html", "title": "Orbit | TrinketTinker", - "keywords": "Orbit Orbit around the anchor. Args Property Type Default Notes RadiusX float 96 Horizontal radius. RadiusY float 40 Vertical radius." + "keywords": "Orbit Orbit around the anchor. Args Property Type Default Notes RadiusX float 96 Horizontal radius. RadiusY float 40 Vertical radius. Period float 1000 Period of 1 orbit around player, in miliseconds." }, "guide/3.z.102-Relative.html": { "href": "guide/3.z.102-Relative.html", @@ -82,23 +87,18 @@ "guide/4-Ability.html": { "href": "guide/4-Ability.html", "title": "Ability | TrinketTinker", - "keywords": "Ability Ability describes the effects that occur when you equip the trinket, like getting healed, or attacking an enemy. An ability is primarily defined by AbilityClass (what it does) and Proc (when does it activate). Structure Property Type Default Notes AbilityClass string DebugDummy Type name of the motion class to use, can use short name like Buff. Refer to page titles under \"Ability Classes\" in the table of contents for details. Description string empty String of the ability, will be used to substitute \"{1}\" in a trinket's description. Proc ProcOn Footstep Make ability activate when something happens. ProcTimer double -1 After an ability proc, prevent further activations for this amount of time. ProcSound string empty Play a sound cue when ability procs (details) ProcTAS List empty String Id of temporary animated sprites to show when the ability activates. Condition string empty A game state query that must pass before proc. DamageThreshold int -1 Must receive or deal this much damage before proc. For ReceiveDamage & DamageMonster IsBomb bool? empty Must deal damage with(true)/not with(false) a bomb. For DamageMonster & SlayMonster, IsCriticalHit bool? empty Must (true)/must not(false) deal a critical hit. Args Dictionary varies Arguments specific to an ability class, see respective page for details. Note Abilities are internally 0-indexed, but the displayed minimum ability can be changed in TinkerData When there are multiple abilities per level and a description for each, they will be joined with new line before passed to description template. Example of how description template works: // Trinket \"Description\": \"My trinket {0}:\\n{1}\" // Tinker \"MinLevel\": 2 // Tinker Abilities [ [ // rest of ability omitted {\"Description\": \"first ability A\", ...}, {\"Description\": \"second ability B\", ...} ], [ // rest of ability omitted {\"Description\": \"first ability C\", ...}, {\"Description\": \"second ability D\", ...} ] ] Description when trinket has internal level 0: My trinket 2: first ability A second ability B Description when trinket has internal level 1: My trinket 3: first ability C second ability D" + "keywords": "Ability Ability describes the effects that occur when you equip the trinket, like getting healed, or attacking an enemy. An ability is primarily defined by AbilityClass (what it does) and Proc (when does it activate). Structure Property Type Default Notes AbilityClass string DebugDummy Type name of the motion class to use, can use short name like Buff. Refer to page titles under \"Ability Classes\" in the table of contents for details. Description string empty String of the ability, will be used to substitute \"{1}\" in a trinket's description. Proc ProcOn Footstep Make ability activate when something happens. ProcTimer double -1 After an ability proc, prevent further activations for this amount of time. ProcSyncIndex int 0 For use with Proc.Sync, makes this ability activate after another ability in the same level. ProcSound string empty Play a sound cue when ability procs (details) ProcTAS List empty String Ids of temporary animated sprites to show when the ability activates. Condition string empty A game state query that must pass before proc. DamageThreshold int -1 Must receive or deal this much damage before proc. For ReceiveDamage & DamageMonster IsBomb bool? empty Must deal damage with(true)/not with(false) a bomb. For DamageMonster & SlayMonster, IsCriticalHit bool? empty Must (true)/must not(false) deal a critical hit. Args Dictionary varies Arguments specific to an ability class, see respective page for details. Ability Descriptions Abilities are internally 0-indexed, but the displayed minimum ability can be changed in TinkerData -hen there are multiple abilities per level and a description for each, they will be joined with new line before passed to description template. It's not neccesary to provide descriptions to all abilities in a level, often it is easier to describe the entire ability in 1 description on the first ability, while leaving the others blank. Example of a description template for a trinket with 2 ability levels: // Trinket \"Description\": \"My trinket {0}:\\n====\\n{1}\" // Tinker \"MinLevel\": 2 // Tinker Abilities [ [ // rest of ability omitted {\"Description\": \"first ability A\", ...}, {\"Description\": \"second ability B\", ...}, ], [ // rest of ability omitted {\"Description\": \"first ability C\", ...}, {\"Description\": \"second ability D\", ...} ] ] Description when trinket has internal level 0: My trinket 2: ==== first ability A second ability B Description when trinket has internal level 1: My trinket 3: ==== first ability C second ability D" }, "guide/4.0-Proc.html": { "href": "guide/4.0-Proc.html", "title": "Proc | TrinketTinker", - "keywords": "Proc Proc determines when an ability activate, kind of like the trigger in a trigger action. The word \"proc\" is gamer slang for \"activate\", used because it's only 4 letters long. The Proc value is not the only factor on whether ability will activate. It must pass any timeout and conditions listed in abilites. In content patcher, use a string value like \"Proc\": \"Always\" to set this value. Internally it is an enum. ProcOn Footstep When the player walks around. ReceiveDamage When the player is damanged. Checks if damage taken is greater than DamageThreshold. DamageMonster When the player damages a monster. Checks if damage dealt is greater than DamageThreshold, and if IsBomb & IsCriticalHit matches the damage. SlayMonster When the player slays a monster. Checks if damage dealt is greater than DamageThreshold, and if IsBomb & IsCriticalHit matches the damage. Timer When timer elapses, must set ProcTimer to use. Trigger When the action \"mushymato.TrinketTinker/ProcTrinket\" is called. If the unqualified trinket Id is given (e.g. \"mushymato.TrinketTinker/ProcTrinket MyTrinket\"), only the specified trinket's ablities will proc. Warped When the player warps/moves to another map. Sync Activate the ability after a different ability on the same level activates. By default this follows the first ability (index 0), which can be changed by setting ProcSyncIndex to a different number. Always Activate the ability once on equip, deactivate it on unequip. Mainly useful as a way to give a persistent Buff." + "keywords": "Proc Proc determines when an ability activate, kind of like the trigger in a trigger action. The word \"proc\" is gamer slang for \"activate\", used because it's only 4 letters long. The Proc value is not the only factor on whether ability will activate. It must pass any timeout and conditions listed in abilites. In content patcher, use a string value like \"Proc\": \"Always\" to set this value. Internally it is an enum. ProcOn Footstep When the player walks around. ReceiveDamage When the player is damanged. Checks if damage taken is greater than DamageThreshold. DamageMonster When the player damages a monster. Checks if damage dealt is greater than DamageThreshold, and if IsBomb & IsCriticalHit matches the damage. SlayMonster When the player slays a monster. Checks if damage dealt is greater than DamageThreshold, and if IsBomb & IsCriticalHit matches the damage. Timer When timer elapses, must set ProcTimer to use. Trigger When the action \"mushymato.TrinketTinker/ProcTrinket\" is called. If the unqualified trinket Id is given (e.g. \"mushymato.TrinketTinker/ProcTrinket MyTrinket\"), only the specified trinket's ablities will proc. Warped When the player warps/moves to another map. Sync Activate the ability when another ability on the same level activates. By default this follows the first ability (index 0) and can be changed by setting ProcSyncIndex to a different number. Always Activate the ability once on equip, deactivate it on unequip. Mainly useful as a way to give a persistent Buff." }, "guide/4.z-Ability Classes.html": { "href": "guide/4.z-Ability Classes.html", "title": "| TrinketTinker", "keywords": "" }, - "guide/4.z.0-DebugDummy.html": { - "href": "guide/4.z.0-DebugDummy.html", - "title": "DebugDummy | TrinketTinker", - "keywords": "DebugDummy Does nothing besides logging to debug, can be helpful for confirming activation." - }, "guide/4.z.01-Buff.html": { "href": "guide/4.z.01-Buff.html", "title": "Buff | TrinketTinker", @@ -107,12 +107,12 @@ "guide/4.z.02-Health.html": { "href": "guide/4.z.02-Health.html", "title": "Health | TrinketTinker", - "keywords": "Health Recover some percent of HP. Args Property Type Default Notes ValueMode ValueMode \"Percent\" Treat the range as either percent or a true value Min double 0 Minimum percent. Max double 0 Minimum percent." + "keywords": "Health Recover some amount of HP. If Min and Max are negative, this ability will damage the player instead. Args Property Type Default Notes ValueMode ValueMode \"Percent\" Treat the range as either percent or a true value Min double 0 Minimum value. Max double 0 Maximum value." }, "guide/4.z.03-Stamina.html": { "href": "guide/4.z.03-Stamina.html", "title": "Stamina | TrinketTinker", - "keywords": "Stamina Recover some percent of stamina. Args Property Type Default Notes ValueMode ValueMode \"Percent\" Treat the range as either percent or a true value Min double 0 Minimum percent. Max double 0 Minimum percent." + "keywords": "Stamina Recover some amount of energy. If Min and Max are negative, this ability will drain the player's energy instead. Args Property Type Default Notes ValueMode ValueMode \"Percent\" Treat the range as either percent or a true value Min double 0 Minimum value. Max double 0 Maximum value." }, "guide/4.z.04-ItemDrop.html": { "href": "guide/4.z.04-ItemDrop.html", @@ -122,22 +122,22 @@ "guide/4.z.05-Hitscan.html": { "href": "guide/4.z.05-Hitscan.html", "title": "Hitscan | TrinketTinker", - "keywords": "Hitscan Do damage to a monster within range, can roll criticals and apply stun/knockback. Args Property Type Default Notes Min int 0 Minimum damage dealt. Max int 0 Maximum damage dealt. Range int 64 Pixel range for finding monster to target. Knockback float 0 Knockback modifier in %. Precision int 0 Precision, doesn't do much unless monster has dodge rate. CritChance float 0 Chance to roll a critical hit. CritDamage float 0 Modifier to critical hit damage. StunTime int 0 Milisecond time to stun the enemy. StunTAS string empty Show this temporary animated sprite when hitting the enemy. Hits int 0 Number of hits to apply at once, monster will only get iframes after the final hit. ExplodeRadius int 0 Generate a explosion with this radius on hit, farmer will take damage from it. Might damage another monster, but the monster that got hit would be in iframe at this point." + "keywords": "Hitscan Do damage to a monster within range, can roll criticals, explode, and apply stun/knockback. Args Property Type Default Notes Min int 0 Minimum damage dealt. Max int 0 Maximum damage dealt. Range int 64 Pixel range for finding monster to target. Knockback float 0 Knockback modifier in %. Precision int 0 Precision, doesn't do much unless monster has dodge rate. CritChance float 0 Chance to roll a critical hit. CritDamage float 0 Modifier to critical hit damage. StunTime int 0 Milisecond time to stun the enemy. StunTAS string empty Show this temporary animated sprite while the enemy is stunned, calculate loop from stun time instead of loop value set in the TAS asset. When used with Projectile, the TAS's rotation is also overwritten with the projectile's rotation. Hits int 0 Number of hits to apply at once, monster will only get iframes after the final hit. ExplodeRadius int 0 Generate a explosion with this radius on hit, farmer will take damage from it. Might damage another monster, but the monster that got hit would be in iframe at this point." }, "guide/4.z.06-Projectile.html": { "href": "guide/4.z.06-Projectile.html", "title": "Projectile | TrinketTinker", - "keywords": "Projectile Do damage to a monster within range using a projectile. Can roll criticals and apply stun/knockback. Uses a custom projectile class that accepts custom projectile texture. Args Property Type Default Notes Texture string TileSheets/Projectiles Path to custom texture. SpriteIndex int 0 Sprite index of projectile. TailCount int 0 Number of echo/trail sprites to draw. MinVelocity float 12 Starting projectile velocity. MaxVelocity float -1 Maximum projectile velocity. Acceleration float 1 Velocity increase per tick. Pierce int 1 Number of enemies the projectile can pass throgh before it is destroyed. IgnoreObjectCollisions bool false Allow projectile to pass through object/terrain. IgnoreLocationCollisions bool 0 Allow projectile to pass through walls. *and all arguments of Hitscan" + "keywords": "Projectile Do damage to a monster within range using a projectile. Can roll criticals and apply stun/knockback. Uses a custom projectile class that accepts custom projectile texture. Args Property Type Default Notes Texture string TileSheets/Projectiles Path to custom projectile texture. SpriteIndex int 0 Sprite index of projectile. SpriteWidth int 16 Projectile sprite width. SpriteHeight int 16 Projectile sprite height. TailCount int 0 Number of echo/trail sprites to draw. MinVelocity float 12 Starting projectile velocity. MaxVelocity float -1 Maximum projectile velocity, -1 if unbounded. Acceleration float 1 Velocity increase per tick. Pierce int 1 Number of times the projectile can collide (with enemy object or terrain) before it is destroyed. IgnoreObjectCollisions bool false Allow projectile to pass through object/terrain. IgnoreLocationCollisions bool false Allow projectile to pass through walls. *and all arguments of Hitscan" }, "guide/4.z.07-RaiseTrigger.html": { "href": "guide/4.z.07-RaiseTrigger.html", "title": "RaiseTrigger | TrinketTinker", - "keywords": "RaiseTrigger Raise the trigger \"mushymato.TrinketTinker/TrinketProc\". The trigger action handler will recieve player and location (nullable), as well as the trinket item as targetItem." + "keywords": "RaiseTrigger Raise the trigger \"mushymato.TrinketTinker/TrinketProc\". The trigger action handler will recieve player and location (nullable), as well as the trinket item as targetItem. Can have niche uses, but it is generally better to directly call the registered delegate with the Action ability. Args No additional arguments." }, "guide/4.z.08-Action.html": { "href": "guide/4.z.08-Action.html", "title": "Action | TrinketTinker", - "keywords": "Action Run an action, either vanilla or mod provided. Args Property Type Default Notes Action string required A trigger action to run." + "keywords": "Action Run an registered action, either vanilla or mod provided. Args Property Type Default Notes Action string required An action to run." }, "guide/4.z.09-HoeDirt.html": { "href": "guide/4.z.09-HoeDirt.html", @@ -146,8 +146,8 @@ }, "guide/4.z.10-HarvestCrop.html": { "href": "guide/4.z.10-HarvestCrop.html", - "title": "HarvestStone | TrinketTinker", - "keywords": "HarvestStone Harvest nearby crops, professions and exp applies. Will not harvest crops in a pot. Can use with AnchorMode.Crop to make companion seek out crops. Args Property Type Default Notes Range int 1 Tile radius around companion, 0 for the tile the companion is on, 1 for 3x3, 2 for 5x5, and so on. Count int 1 Number of stone to break each time." + "title": "HarvestCrop | TrinketTinker", + "keywords": "HarvestCrop Harvest nearby crops, professions and exp applies. Will not harvest crops in a pot. Can use with AnchorMode.Crop to make companion seek out crops. Args Property Type Default Notes Range int 1 Tile radius around companion, 0 for the tile the companion is on, 1 for 3x3, 2 for 5x5, and so on. Count int 1 Number of stone to break each time." }, "guide/4.z.10-HarvestForage.html": { "href": "guide/4.z.10-HarvestForage.html", @@ -159,15 +159,15 @@ "title": "HarvestStone | TrinketTinker", "keywords": "HarvestStone Break nearby stones and ores, professions and exp don't apply. Can use with AnchorMode.Forage to make companion seek out forage. Args Property Type Default Notes Range int 1 Tile radius around companion, 0 for the tile the companion is on, 1 for 3x3, 2 for 5x5, and so on. Count int 1 Number of stone to break each time." }, - "guide/5-TAS.html": { - "href": "guide/5-TAS.html", + "guide/5-Temporary Animated Sprite.html": { + "href": "guide/5-Temporary Animated Sprite.html", "title": "Temporary Animated Sprite | TrinketTinker", "keywords": "Temporary Animated Sprite Temporary animated sprites are ways to show animated effects on screen temporarily. They existed prior to 1.6, but was given a proper data model to use in Data/Machines. For trinket tinker, any field that calls for temporary animated sprites takes string ids corresponding to an entry in mushymato.TrinketTinker/TAS rather than the full definition. This let you reuse the same TAS in multiple places. TemporaryAnimatedSpriteDefinition Note TemporaryAnimatedSpriteDefinition is a class provided by the game, not defined by this mod. Property Type Default Notes Id string required Unique string id Condition string empty Game state query, show TAS if true. Texture string required Texture asset name. SourceRect Rectangle required Area of texture to draw. Interval float 100 Time between frames, in miliseconds. Frames int 1 Length of the animation. Loops int empty Number of times to repeat the animation. PositionOffset Vector2 Vector2.Zero Offset added to position during draw. Flicker bool empty Skips drawing every other frame. Flip bool Horizontally flip the sprite during draw. SortOffset float empty Offset on layer depth, for determining whether this sprite appear over or under other sprites. AlphaFade float empty Amount of additional transparency every frame. Set this to make the sprite fade away over time. Scale float 1f Draw scale, applied on top of the default 4x scale. ScaleChange float empty Amount of additional scale every frame. Set this to make sprite enlarge/shrink over time. Rotation float empty Amount of rotation on the sprite. RotationChange float empty Amount of additional rotation every frame. Set this to make the sprite spin. Color string Color to apply on draw, for use with grayscale sprites. Aside from RGB and hex values, monogame accepts named colors." }, "guide/6-Extras.html": { "href": "guide/6-Extras.html", "title": "Extras | TrinketTinker", - "keywords": "Extras TrinketTinker provides a few extra supporting features. Item Query: mushymato.TrinketTinker_CREATE_TRINKET mushymato.TrinketTinker_CREATE_TRINKET [level] [variant] Creates a new trinket item. If the trinket has tinker data, set level and variant. Useful for producing a trinket at specified level/variant. Machine: Trinket Colorizer A new machine that can be purchased from the Blacksmith for 50 Gold Bars once the Anvil recipe is obtained. Consumes 3 Star Shards to reroll the variant on a TrinketTinker trinket, no effect on vanilla trinkets. The Trinket Colorizer is just a normal machine with qualified id (BC)mushymato.TrinketTinker_TrinketColorizer, mods are free to add their own machine rules. By default, the colorizer will never roll the same variant twice in a row. Anvils have similar rule applied to them, for TrinketTinker trinkets only." + "keywords": "Extras TrinketTinker provides a few extra supporting features. Item Query: mushymato.TrinketTinker_CREATE_TRINKET mushymato.TrinketTinker_CREATE_TRINKET [level] [variant] Creates a new trinket item. If the trinket has tinker data, set level and variant. Useful for producing a trinket at specified level/variant. Machine: Trinket Colorizer A new machine that can be purchased from the Blacksmith for 50 Gold Bars once the Anvil recipe is obtained. Consumes 15 Omni Geode to reroll the variant on a TrinketTinker trinket, no effect on vanilla trinkets. The colorizer will never roll the same variant twice in a row. Anvils have similar rule applied to them for TrinketTinker trinkets. Implementation wise, the Trinket Colorizer is a standard machine with qualified ID (BC)mushymato.TrinketTinker_TrinketColorizer and a single complex output machine rule. Mods are free to disregard" }, "guide/x-example.html": { "href": "guide/x-example.html", diff --git a/docs/manifest.json b/docs/manifest.json index b9a9a05..4087b86 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -20,6 +20,16 @@ }, "version": "" }, + { + "type": "ManagedReference", + "source_relative_path": "api/TrinketTinker.Companions.Anim.DrawSnapshot.yml", + "output": { + ".html": { + "relative_path": "api/TrinketTinker.Companions.Anim.DrawSnapshot.html" + } + }, + "version": "" + }, { "type": "ManagedReference", "source_relative_path": "api/TrinketTinker.Companions.Anim.TinkerAnimSprite.yml", @@ -140,6 +150,16 @@ }, "version": "" }, + { + "type": "ManagedReference", + "source_relative_path": "api/TrinketTinker.Companions.Motions.SerpentMotion.yml", + "output": { + ".html": { + "relative_path": "api/TrinketTinker.Companions.Motions.SerpentMotion.html" + } + }, + "version": "" + }, { "type": "ManagedReference", "source_relative_path": "api/TrinketTinker.Companions.Motions.StaticMotion.yml", @@ -220,16 +240,6 @@ }, "version": "" }, - { - "type": "ManagedReference", - "source_relative_path": "api/TrinketTinker.Effects.Abilities.DebugDummyAbility.yml", - "output": { - ".html": { - "relative_path": "api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html" - } - }, - "version": "" - }, { "type": "ManagedReference", "source_relative_path": "api/TrinketTinker.Effects.Abilities.HarvestCropAbility.yml", @@ -720,6 +730,16 @@ }, "version": "" }, + { + "type": "ManagedReference", + "source_relative_path": "api/TrinketTinker.Models.MotionArgs.SerpentArgs.yml", + "output": { + ".html": { + "relative_path": "api/TrinketTinker.Models.MotionArgs.SerpentArgs.html" + } + }, + "version": "" + }, { "type": "ManagedReference", "source_relative_path": "api/TrinketTinker.Models.MotionArgs.StaticArgs.yml", @@ -943,6 +963,16 @@ }, "version": "" }, + { + "type": "Conceptual", + "source_relative_path": "guide/3.z.004-Serpent.md", + "output": { + ".html": { + "relative_path": "guide/3.z.004-Serpent.html" + } + }, + "version": "" + }, { "type": "Conceptual", "source_relative_path": "guide/3.z.100-Static.md", @@ -1003,16 +1033,6 @@ }, "version": "" }, - { - "type": "Conceptual", - "source_relative_path": "guide/4.z.0-DebugDummy.md", - "output": { - ".html": { - "relative_path": "guide/4.z.0-DebugDummy.html" - } - }, - "version": "" - }, { "type": "Conceptual", "source_relative_path": "guide/4.z.01-Buff.md", @@ -1135,10 +1155,10 @@ }, { "type": "Conceptual", - "source_relative_path": "guide/5-TAS.md", + "source_relative_path": "guide/5-Temporary Animated Sprite.md", "output": { ".html": { - "relative_path": "guide/5-TAS.html" + "relative_path": "guide/5-Temporary Animated Sprite.html" } }, "version": "" @@ -1176,6 +1196,16 @@ }, "version": "" }, + { + "type": "Resource", + "source_relative_path": "images/demo/repeat.png", + "output": { + "resource": { + "relative_path": "images/demo/repeat.png" + } + }, + "version": "" + }, { "type": "Resource", "source_relative_path": "images/favicon.png", @@ -1216,6 +1246,16 @@ }, "version": "" }, + { + "type": "Resource", + "source_relative_path": "images/sheets/rl-repeat-2.png", + "output": { + "resource": { + "relative_path": "images/sheets/rl-repeat-2.png" + } + }, + "version": "" + }, { "type": "Resource", "source_relative_path": "images/sheets/rl.png", diff --git a/docs/xrefmap.yml b/docs/xrefmap.yml index 97a3bba..5ce6141 100644 --- a/docs/xrefmap.yml +++ b/docs/xrefmap.yml @@ -13,6 +13,148 @@ references: commentId: N:TrinketTinker.Companions.Anim fullName: TrinketTinker.Companions.Anim nameWithType: TrinketTinker.Companions.Anim +- uid: TrinketTinker.Companions.Anim.DrawSnapshot + name: DrawSnapshot + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html + commentId: T:TrinketTinker.Companions.Anim.DrawSnapshot + fullName: TrinketTinker.Companions.Anim.DrawSnapshot + nameWithType: DrawSnapshot +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.#ctor(Microsoft.Xna.Framework.Graphics.Texture2D,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Color,System.Single,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Graphics.SpriteEffects,System.Single) + name: DrawSnapshot(Texture2D, Vector2, Rectangle, Color, float, Vector2, Vector2, SpriteEffects, float) + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot__ctor_Microsoft_Xna_Framework_Graphics_Texture2D_Microsoft_Xna_Framework_Vector2_Microsoft_Xna_Framework_Rectangle_Microsoft_Xna_Framework_Color_System_Single_Microsoft_Xna_Framework_Vector2_Microsoft_Xna_Framework_Vector2_Microsoft_Xna_Framework_Graphics_SpriteEffects_System_Single_ + commentId: M:TrinketTinker.Companions.Anim.DrawSnapshot.#ctor(Microsoft.Xna.Framework.Graphics.Texture2D,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Color,System.Single,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Graphics.SpriteEffects,System.Single) + name.vb: New(Texture2D, Vector2, Rectangle, Color, Single, Vector2, Vector2, SpriteEffects, Single) + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.DrawSnapshot(Microsoft.Xna.Framework.Graphics.Texture2D, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Rectangle, Microsoft.Xna.Framework.Color, float, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Graphics.SpriteEffects, float) + fullName.vb: TrinketTinker.Companions.Anim.DrawSnapshot.New(Microsoft.Xna.Framework.Graphics.Texture2D, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Rectangle, Microsoft.Xna.Framework.Color, Single, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Graphics.SpriteEffects, Single) + nameWithType: DrawSnapshot.DrawSnapshot(Texture2D, Vector2, Rectangle, Color, float, Vector2, Vector2, SpriteEffects, float) + nameWithType.vb: DrawSnapshot.New(Texture2D, Vector2, Rectangle, Color, Single, Vector2, Vector2, SpriteEffects, Single) +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.#ctor* + name: DrawSnapshot + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot__ctor_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.#ctor + isSpec: "True" + name.vb: New + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.DrawSnapshot + fullName.vb: TrinketTinker.Companions.Anim.DrawSnapshot.New + nameWithType: DrawSnapshot.DrawSnapshot + nameWithType.vb: DrawSnapshot.New +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.DrawColor + name: DrawColor + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_DrawColor + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.DrawColor + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.DrawColor + nameWithType: DrawSnapshot.DrawColor +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.DrawColor* + name: DrawColor + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_DrawColor_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.DrawColor + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.DrawColor + nameWithType: DrawSnapshot.DrawColor +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Effects + name: Effects + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Effects + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.Effects + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Effects + nameWithType: DrawSnapshot.Effects +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Effects* + name: Effects + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Effects_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.Effects + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Effects + nameWithType: DrawSnapshot.Effects +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.LayerDepth + name: LayerDepth + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_LayerDepth + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.LayerDepth + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.LayerDepth + nameWithType: DrawSnapshot.LayerDepth +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.LayerDepth* + name: LayerDepth + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_LayerDepth_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.LayerDepth + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.LayerDepth + nameWithType: DrawSnapshot.LayerDepth +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Origin + name: Origin + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Origin + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.Origin + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Origin + nameWithType: DrawSnapshot.Origin +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Origin* + name: Origin + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Origin_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.Origin + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Origin + nameWithType: DrawSnapshot.Origin +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Position + name: Position + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Position + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.Position + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Position + nameWithType: DrawSnapshot.Position +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Position* + name: Position + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Position_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.Position + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Position + nameWithType: DrawSnapshot.Position +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Rotation + name: Rotation + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Rotation + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.Rotation + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Rotation + nameWithType: DrawSnapshot.Rotation +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Rotation* + name: Rotation + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Rotation_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.Rotation + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Rotation + nameWithType: DrawSnapshot.Rotation +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.SourceRect + name: SourceRect + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_SourceRect + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.SourceRect + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.SourceRect + nameWithType: DrawSnapshot.SourceRect +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.SourceRect* + name: SourceRect + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_SourceRect_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.SourceRect + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.SourceRect + nameWithType: DrawSnapshot.SourceRect +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Texture + name: Texture + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Texture + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.Texture + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Texture + nameWithType: DrawSnapshot.Texture +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.Texture* + name: Texture + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_Texture_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.Texture + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.Texture + nameWithType: DrawSnapshot.Texture +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.TextureScale + name: TextureScale + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_TextureScale + commentId: P:TrinketTinker.Companions.Anim.DrawSnapshot.TextureScale + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.TextureScale + nameWithType: DrawSnapshot.TextureScale +- uid: TrinketTinker.Companions.Anim.DrawSnapshot.TextureScale* + name: TextureScale + href: api/TrinketTinker.Companions.Anim.DrawSnapshot.html#TrinketTinker_Companions_Anim_DrawSnapshot_TextureScale_ + commentId: Overload:TrinketTinker.Companions.Anim.DrawSnapshot.TextureScale + isSpec: "True" + fullName: TrinketTinker.Companions.Anim.DrawSnapshot.TextureScale + nameWithType: DrawSnapshot.TextureScale - uid: TrinketTinker.Companions.Anim.TinkerAnimSprite name: TinkerAnimSprite href: api/TrinketTinker.Companions.Anim.TinkerAnimSprite.html @@ -796,6 +938,58 @@ references: fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).Draw nameWithType: Motion.Draw nameWithType.vb: Motion(Of TArgs).Draw +- uid: TrinketTinker.Companions.Motions.Motion`1.DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + name: DrawCompanion(SpriteBatch, DrawSnapshot) + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_DrawCompanion_Microsoft_Xna_Framework_Graphics_SpriteBatch_TrinketTinker_Companions_Anim_DrawSnapshot_ + commentId: M:TrinketTinker.Companions.Motions.Motion`1.DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + fullName: TrinketTinker.Companions.Motions.Motion.DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch, TrinketTinker.Companions.Anim.DrawSnapshot) + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch, TrinketTinker.Companions.Anim.DrawSnapshot) + nameWithType: Motion.DrawCompanion(SpriteBatch, DrawSnapshot) + nameWithType.vb: Motion(Of TArgs).DrawCompanion(SpriteBatch, DrawSnapshot) +- uid: TrinketTinker.Companions.Motions.Motion`1.DrawCompanion* + name: DrawCompanion + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_DrawCompanion_ + commentId: Overload:TrinketTinker.Companions.Motions.Motion`1.DrawCompanion + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.Motion.DrawCompanion + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).DrawCompanion + nameWithType: Motion.DrawCompanion + nameWithType.vb: Motion(Of TArgs).DrawCompanion +- uid: TrinketTinker.Companions.Motions.Motion`1.DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + name: DrawShadow(SpriteBatch, DrawSnapshot) + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_DrawShadow_Microsoft_Xna_Framework_Graphics_SpriteBatch_TrinketTinker_Companions_Anim_DrawSnapshot_ + commentId: M:TrinketTinker.Companions.Motions.Motion`1.DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + fullName: TrinketTinker.Companions.Motions.Motion.DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch, TrinketTinker.Companions.Anim.DrawSnapshot) + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch, TrinketTinker.Companions.Anim.DrawSnapshot) + nameWithType: Motion.DrawShadow(SpriteBatch, DrawSnapshot) + nameWithType.vb: Motion(Of TArgs).DrawShadow(SpriteBatch, DrawSnapshot) +- uid: TrinketTinker.Companions.Motions.Motion`1.DrawShadow* + name: DrawShadow + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_DrawShadow_ + commentId: Overload:TrinketTinker.Companions.Motions.Motion`1.DrawShadow + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.Motion.DrawShadow + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).DrawShadow + nameWithType: Motion.DrawShadow + nameWithType.vb: Motion(Of TArgs).DrawShadow +- uid: TrinketTinker.Companions.Motions.Motion`1.EnqueueRepeatDraws(TrinketTinker.Companions.Anim.DrawSnapshot,System.Boolean) + name: EnqueueRepeatDraws(DrawSnapshot, bool) + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_EnqueueRepeatDraws_TrinketTinker_Companions_Anim_DrawSnapshot_System_Boolean_ + commentId: M:TrinketTinker.Companions.Motions.Motion`1.EnqueueRepeatDraws(TrinketTinker.Companions.Anim.DrawSnapshot,System.Boolean) + name.vb: EnqueueRepeatDraws(DrawSnapshot, Boolean) + fullName: TrinketTinker.Companions.Motions.Motion.EnqueueRepeatDraws(TrinketTinker.Companions.Anim.DrawSnapshot, bool) + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).EnqueueRepeatDraws(TrinketTinker.Companions.Anim.DrawSnapshot, Boolean) + nameWithType: Motion.EnqueueRepeatDraws(DrawSnapshot, bool) + nameWithType.vb: Motion(Of TArgs).EnqueueRepeatDraws(DrawSnapshot, Boolean) +- uid: TrinketTinker.Companions.Motions.Motion`1.EnqueueRepeatDraws* + name: EnqueueRepeatDraws + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_EnqueueRepeatDraws_ + commentId: Overload:TrinketTinker.Companions.Motions.Motion`1.EnqueueRepeatDraws + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.Motion.EnqueueRepeatDraws + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).EnqueueRepeatDraws + nameWithType: Motion.EnqueueRepeatDraws + nameWithType.vb: Motion(Of TArgs).EnqueueRepeatDraws - uid: TrinketTinker.Companions.Motions.Motion`1.GetMoving name: GetMoving() href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_GetMoving @@ -968,6 +1162,23 @@ references: fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).SetOverrideClip nameWithType: Motion.SetOverrideClip nameWithType.vb: Motion(Of TArgs).SetOverrideClip +- uid: TrinketTinker.Companions.Motions.Motion`1.TotalFrames + name: TotalFrames + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_TotalFrames + commentId: P:TrinketTinker.Companions.Motions.Motion`1.TotalFrames + fullName: TrinketTinker.Companions.Motions.Motion.TotalFrames + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).TotalFrames + nameWithType: Motion.TotalFrames + nameWithType.vb: Motion(Of TArgs).TotalFrames +- uid: TrinketTinker.Companions.Motions.Motion`1.TotalFrames* + name: TotalFrames + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_TotalFrames_ + commentId: Overload:TrinketTinker.Companions.Motions.Motion`1.TotalFrames + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.Motion.TotalFrames + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).TotalFrames + nameWithType: Motion.TotalFrames + nameWithType.vb: Motion(Of TArgs).TotalFrames - uid: TrinketTinker.Companions.Motions.Motion`1.UpdateAnchor(Microsoft.Xna.Framework.GameTime,StardewValley.GameLocation) name: UpdateAnchor(GameTime, GameLocation) href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_UpdateAnchor_Microsoft_Xna_Framework_GameTime_StardewValley_GameLocation_ @@ -1085,6 +1296,14 @@ references: fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).currAnchorTarget nameWithType: Motion.currAnchorTarget nameWithType.vb: Motion(Of TArgs).currAnchorTarget +- uid: TrinketTinker.Companions.Motions.Motion`1.framesetLength + name: framesetLength + href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_framesetLength + commentId: F:TrinketTinker.Companions.Motions.Motion`1.framesetLength + fullName: TrinketTinker.Companions.Motions.Motion.framesetLength + fullName.vb: TrinketTinker.Companions.Motions.Motion(Of TArgs).framesetLength + nameWithType: Motion.framesetLength + nameWithType.vb: Motion(Of TArgs).framesetLength - uid: TrinketTinker.Companions.Motions.Motion`1.lightId name: lightId href: api/TrinketTinker.Companions.Motions.Motion-1.html#TrinketTinker_Companions_Motions_Motion_1_lightId @@ -1245,6 +1464,83 @@ references: isSpec: "True" fullName: TrinketTinker.Companions.Motions.RelativeMotion.GetPositionalLayerDepth nameWithType: RelativeMotion.GetPositionalLayerDepth +- uid: TrinketTinker.Companions.Motions.SerpentMotion + name: SerpentMotion + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html + commentId: T:TrinketTinker.Companions.Motions.SerpentMotion + fullName: TrinketTinker.Companions.Motions.SerpentMotion + nameWithType: SerpentMotion +- uid: TrinketTinker.Companions.Motions.SerpentMotion.#ctor(TrinketTinker.Companions.TrinketTinkerCompanion,TrinketTinker.Models.MotionData,TrinketTinker.Models.VariantData) + name: SerpentMotion(TrinketTinkerCompanion, MotionData, VariantData) + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion__ctor_TrinketTinker_Companions_TrinketTinkerCompanion_TrinketTinker_Models_MotionData_TrinketTinker_Models_VariantData_ + commentId: M:TrinketTinker.Companions.Motions.SerpentMotion.#ctor(TrinketTinker.Companions.TrinketTinkerCompanion,TrinketTinker.Models.MotionData,TrinketTinker.Models.VariantData) + name.vb: New(TrinketTinkerCompanion, MotionData, VariantData) + fullName: TrinketTinker.Companions.Motions.SerpentMotion.SerpentMotion(TrinketTinker.Companions.TrinketTinkerCompanion, TrinketTinker.Models.MotionData, TrinketTinker.Models.VariantData) + fullName.vb: TrinketTinker.Companions.Motions.SerpentMotion.New(TrinketTinker.Companions.TrinketTinkerCompanion, TrinketTinker.Models.MotionData, TrinketTinker.Models.VariantData) + nameWithType: SerpentMotion.SerpentMotion(TrinketTinkerCompanion, MotionData, VariantData) + nameWithType.vb: SerpentMotion.New(TrinketTinkerCompanion, MotionData, VariantData) +- uid: TrinketTinker.Companions.Motions.SerpentMotion.#ctor* + name: SerpentMotion + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion__ctor_ + commentId: Overload:TrinketTinker.Companions.Motions.SerpentMotion.#ctor + isSpec: "True" + name.vb: New + fullName: TrinketTinker.Companions.Motions.SerpentMotion.SerpentMotion + fullName.vb: TrinketTinker.Companions.Motions.SerpentMotion.New + nameWithType: SerpentMotion.SerpentMotion + nameWithType.vb: SerpentMotion.New +- uid: TrinketTinker.Companions.Motions.SerpentMotion.DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + name: DrawCompanion(SpriteBatch, DrawSnapshot) + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_DrawCompanion_Microsoft_Xna_Framework_Graphics_SpriteBatch_TrinketTinker_Companions_Anim_DrawSnapshot_ + commentId: M:TrinketTinker.Companions.Motions.SerpentMotion.DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + fullName: TrinketTinker.Companions.Motions.SerpentMotion.DrawCompanion(Microsoft.Xna.Framework.Graphics.SpriteBatch, TrinketTinker.Companions.Anim.DrawSnapshot) + nameWithType: SerpentMotion.DrawCompanion(SpriteBatch, DrawSnapshot) +- uid: TrinketTinker.Companions.Motions.SerpentMotion.DrawCompanion* + name: DrawCompanion + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_DrawCompanion_ + commentId: Overload:TrinketTinker.Companions.Motions.SerpentMotion.DrawCompanion + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.SerpentMotion.DrawCompanion + nameWithType: SerpentMotion.DrawCompanion +- uid: TrinketTinker.Companions.Motions.SerpentMotion.DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + name: DrawShadow(SpriteBatch, DrawSnapshot) + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_DrawShadow_Microsoft_Xna_Framework_Graphics_SpriteBatch_TrinketTinker_Companions_Anim_DrawSnapshot_ + commentId: M:TrinketTinker.Companions.Motions.SerpentMotion.DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch,TrinketTinker.Companions.Anim.DrawSnapshot) + fullName: TrinketTinker.Companions.Motions.SerpentMotion.DrawShadow(Microsoft.Xna.Framework.Graphics.SpriteBatch, TrinketTinker.Companions.Anim.DrawSnapshot) + nameWithType: SerpentMotion.DrawShadow(SpriteBatch, DrawSnapshot) +- uid: TrinketTinker.Companions.Motions.SerpentMotion.DrawShadow* + name: DrawShadow + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_DrawShadow_ + commentId: Overload:TrinketTinker.Companions.Motions.SerpentMotion.DrawShadow + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.SerpentMotion.DrawShadow + nameWithType: SerpentMotion.DrawShadow +- uid: TrinketTinker.Companions.Motions.SerpentMotion.TotalFrames + name: TotalFrames + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_TotalFrames + commentId: P:TrinketTinker.Companions.Motions.SerpentMotion.TotalFrames + fullName: TrinketTinker.Companions.Motions.SerpentMotion.TotalFrames + nameWithType: SerpentMotion.TotalFrames +- uid: TrinketTinker.Companions.Motions.SerpentMotion.TotalFrames* + name: TotalFrames + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_TotalFrames_ + commentId: Overload:TrinketTinker.Companions.Motions.SerpentMotion.TotalFrames + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.SerpentMotion.TotalFrames + nameWithType: SerpentMotion.TotalFrames +- uid: TrinketTinker.Companions.Motions.SerpentMotion.UpdateGlobal(Microsoft.Xna.Framework.GameTime,StardewValley.GameLocation) + name: UpdateGlobal(GameTime, GameLocation) + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_UpdateGlobal_Microsoft_Xna_Framework_GameTime_StardewValley_GameLocation_ + commentId: M:TrinketTinker.Companions.Motions.SerpentMotion.UpdateGlobal(Microsoft.Xna.Framework.GameTime,StardewValley.GameLocation) + fullName: TrinketTinker.Companions.Motions.SerpentMotion.UpdateGlobal(Microsoft.Xna.Framework.GameTime, StardewValley.GameLocation) + nameWithType: SerpentMotion.UpdateGlobal(GameTime, GameLocation) +- uid: TrinketTinker.Companions.Motions.SerpentMotion.UpdateGlobal* + name: UpdateGlobal + href: api/TrinketTinker.Companions.Motions.SerpentMotion.html#TrinketTinker_Companions_Motions_SerpentMotion_UpdateGlobal_ + commentId: Overload:TrinketTinker.Companions.Motions.SerpentMotion.UpdateGlobal + isSpec: "True" + fullName: TrinketTinker.Companions.Motions.SerpentMotion.UpdateGlobal + nameWithType: SerpentMotion.UpdateGlobal - uid: TrinketTinker.Companions.Motions.StaticMotion name: StaticMotion href: api/TrinketTinker.Companions.Motions.StaticMotion.html @@ -1950,44 +2246,6 @@ references: isSpec: "True" fullName: TrinketTinker.Effects.Abilities.BuffAbility.CleanupEffect nameWithType: BuffAbility.CleanupEffect -- uid: TrinketTinker.Effects.Abilities.DebugDummyAbility - name: DebugDummyAbility - href: api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html - commentId: T:TrinketTinker.Effects.Abilities.DebugDummyAbility - fullName: TrinketTinker.Effects.Abilities.DebugDummyAbility - nameWithType: DebugDummyAbility -- uid: TrinketTinker.Effects.Abilities.DebugDummyAbility.#ctor(TrinketTinker.Effects.TrinketTinkerEffect,TrinketTinker.Models.AbilityData,System.Int32) - name: DebugDummyAbility(TrinketTinkerEffect, AbilityData, int) - href: api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html#TrinketTinker_Effects_Abilities_DebugDummyAbility__ctor_TrinketTinker_Effects_TrinketTinkerEffect_TrinketTinker_Models_AbilityData_System_Int32_ - commentId: M:TrinketTinker.Effects.Abilities.DebugDummyAbility.#ctor(TrinketTinker.Effects.TrinketTinkerEffect,TrinketTinker.Models.AbilityData,System.Int32) - name.vb: New(TrinketTinkerEffect, AbilityData, Integer) - fullName: TrinketTinker.Effects.Abilities.DebugDummyAbility.DebugDummyAbility(TrinketTinker.Effects.TrinketTinkerEffect, TrinketTinker.Models.AbilityData, int) - fullName.vb: TrinketTinker.Effects.Abilities.DebugDummyAbility.New(TrinketTinker.Effects.TrinketTinkerEffect, TrinketTinker.Models.AbilityData, Integer) - nameWithType: DebugDummyAbility.DebugDummyAbility(TrinketTinkerEffect, AbilityData, int) - nameWithType.vb: DebugDummyAbility.New(TrinketTinkerEffect, AbilityData, Integer) -- uid: TrinketTinker.Effects.Abilities.DebugDummyAbility.#ctor* - name: DebugDummyAbility - href: api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html#TrinketTinker_Effects_Abilities_DebugDummyAbility__ctor_ - commentId: Overload:TrinketTinker.Effects.Abilities.DebugDummyAbility.#ctor - isSpec: "True" - name.vb: New - fullName: TrinketTinker.Effects.Abilities.DebugDummyAbility.DebugDummyAbility - fullName.vb: TrinketTinker.Effects.Abilities.DebugDummyAbility.New - nameWithType: DebugDummyAbility.DebugDummyAbility - nameWithType.vb: DebugDummyAbility.New -- uid: TrinketTinker.Effects.Abilities.DebugDummyAbility.ApplyEffect(TrinketTinker.Effects.Proc.ProcEventArgs) - name: ApplyEffect(ProcEventArgs) - href: api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html#TrinketTinker_Effects_Abilities_DebugDummyAbility_ApplyEffect_TrinketTinker_Effects_Proc_ProcEventArgs_ - commentId: M:TrinketTinker.Effects.Abilities.DebugDummyAbility.ApplyEffect(TrinketTinker.Effects.Proc.ProcEventArgs) - fullName: TrinketTinker.Effects.Abilities.DebugDummyAbility.ApplyEffect(TrinketTinker.Effects.Proc.ProcEventArgs) - nameWithType: DebugDummyAbility.ApplyEffect(ProcEventArgs) -- uid: TrinketTinker.Effects.Abilities.DebugDummyAbility.ApplyEffect* - name: ApplyEffect - href: api/TrinketTinker.Effects.Abilities.DebugDummyAbility.html#TrinketTinker_Effects_Abilities_DebugDummyAbility_ApplyEffect_ - commentId: Overload:TrinketTinker.Effects.Abilities.DebugDummyAbility.ApplyEffect - isSpec: "True" - fullName: TrinketTinker.Effects.Abilities.DebugDummyAbility.ApplyEffect - nameWithType: DebugDummyAbility.ApplyEffect - uid: TrinketTinker.Effects.Abilities.HarvestCropAbility name: HarvestCropAbility href: api/TrinketTinker.Effects.Abilities.HarvestCropAbility.html @@ -4592,6 +4850,19 @@ references: commentId: T:TrinketTinker.Models.MotionArgs.OrbitArgs fullName: TrinketTinker.Models.MotionArgs.OrbitArgs nameWithType: OrbitArgs +- uid: TrinketTinker.Models.MotionArgs.OrbitArgs.Period + name: Period + href: api/TrinketTinker.Models.MotionArgs.OrbitArgs.html#TrinketTinker_Models_MotionArgs_OrbitArgs_Period + commentId: P:TrinketTinker.Models.MotionArgs.OrbitArgs.Period + fullName: TrinketTinker.Models.MotionArgs.OrbitArgs.Period + nameWithType: OrbitArgs.Period +- uid: TrinketTinker.Models.MotionArgs.OrbitArgs.Period* + name: Period + href: api/TrinketTinker.Models.MotionArgs.OrbitArgs.html#TrinketTinker_Models_MotionArgs_OrbitArgs_Period_ + commentId: Overload:TrinketTinker.Models.MotionArgs.OrbitArgs.Period + isSpec: "True" + fullName: TrinketTinker.Models.MotionArgs.OrbitArgs.Period + nameWithType: OrbitArgs.Period - uid: TrinketTinker.Models.MotionArgs.OrbitArgs.RadiusX name: RadiusX href: api/TrinketTinker.Models.MotionArgs.OrbitArgs.html#TrinketTinker_Models_MotionArgs_OrbitArgs_RadiusX @@ -4631,6 +4902,38 @@ references: isSpec: "True" fullName: TrinketTinker.Models.MotionArgs.OrbitArgs.Validate nameWithType: OrbitArgs.Validate +- uid: TrinketTinker.Models.MotionArgs.SerpentArgs + name: SerpentArgs + href: api/TrinketTinker.Models.MotionArgs.SerpentArgs.html + commentId: T:TrinketTinker.Models.MotionArgs.SerpentArgs + fullName: TrinketTinker.Models.MotionArgs.SerpentArgs + nameWithType: SerpentArgs +- uid: TrinketTinker.Models.MotionArgs.SerpentArgs.SegmentCount + name: SegmentCount + href: api/TrinketTinker.Models.MotionArgs.SerpentArgs.html#TrinketTinker_Models_MotionArgs_SerpentArgs_SegmentCount + commentId: P:TrinketTinker.Models.MotionArgs.SerpentArgs.SegmentCount + fullName: TrinketTinker.Models.MotionArgs.SerpentArgs.SegmentCount + nameWithType: SerpentArgs.SegmentCount +- uid: TrinketTinker.Models.MotionArgs.SerpentArgs.SegmentCount* + name: SegmentCount + href: api/TrinketTinker.Models.MotionArgs.SerpentArgs.html#TrinketTinker_Models_MotionArgs_SerpentArgs_SegmentCount_ + commentId: Overload:TrinketTinker.Models.MotionArgs.SerpentArgs.SegmentCount + isSpec: "True" + fullName: TrinketTinker.Models.MotionArgs.SerpentArgs.SegmentCount + nameWithType: SerpentArgs.SegmentCount +- uid: TrinketTinker.Models.MotionArgs.SerpentArgs.Sparcity + name: Sparcity + href: api/TrinketTinker.Models.MotionArgs.SerpentArgs.html#TrinketTinker_Models_MotionArgs_SerpentArgs_Sparcity + commentId: P:TrinketTinker.Models.MotionArgs.SerpentArgs.Sparcity + fullName: TrinketTinker.Models.MotionArgs.SerpentArgs.Sparcity + nameWithType: SerpentArgs.Sparcity +- uid: TrinketTinker.Models.MotionArgs.SerpentArgs.Sparcity* + name: Sparcity + href: api/TrinketTinker.Models.MotionArgs.SerpentArgs.html#TrinketTinker_Models_MotionArgs_SerpentArgs_Sparcity_ + commentId: Overload:TrinketTinker.Models.MotionArgs.SerpentArgs.Sparcity + isSpec: "True" + fullName: TrinketTinker.Models.MotionArgs.SerpentArgs.Sparcity + nameWithType: SerpentArgs.Sparcity - uid: TrinketTinker.Models.MotionArgs.StaticArgs name: StaticArgs href: api/TrinketTinker.Models.MotionArgs.StaticArgs.html @@ -4847,58 +5150,32 @@ references: isSpec: "True" fullName: TrinketTinker.Models.MotionData.RepeatCount nameWithType: MotionData.RepeatCount -- uid: TrinketTinker.Models.MotionData.RepeatInternval - name: RepeatInternval - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_RepeatInternval - commentId: P:TrinketTinker.Models.MotionData.RepeatInternval - fullName: TrinketTinker.Models.MotionData.RepeatInternval - nameWithType: MotionData.RepeatInternval -- uid: TrinketTinker.Models.MotionData.RepeatInternval* - name: RepeatInternval - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_RepeatInternval_ - commentId: Overload:TrinketTinker.Models.MotionData.RepeatInternval - isSpec: "True" - fullName: TrinketTinker.Models.MotionData.RepeatInternval - nameWithType: MotionData.RepeatInternval -- uid: TrinketTinker.Models.MotionData.Segment - name: Segment - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_Segment - commentId: P:TrinketTinker.Models.MotionData.Segment - fullName: TrinketTinker.Models.MotionData.Segment - nameWithType: MotionData.Segment -- uid: TrinketTinker.Models.MotionData.Segment* - name: Segment - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_Segment_ - commentId: Overload:TrinketTinker.Models.MotionData.Segment - isSpec: "True" - fullName: TrinketTinker.Models.MotionData.Segment - nameWithType: MotionData.Segment -- uid: TrinketTinker.Models.MotionData.SegmentInterval - name: SegmentInterval - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_SegmentInterval - commentId: P:TrinketTinker.Models.MotionData.SegmentInterval - fullName: TrinketTinker.Models.MotionData.SegmentInterval - nameWithType: MotionData.SegmentInterval -- uid: TrinketTinker.Models.MotionData.SegmentInterval* - name: SegmentInterval - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_SegmentInterval_ - commentId: Overload:TrinketTinker.Models.MotionData.SegmentInterval - isSpec: "True" - fullName: TrinketTinker.Models.MotionData.SegmentInterval - nameWithType: MotionData.SegmentInterval -- uid: TrinketTinker.Models.MotionData.SegmentLength - name: SegmentLength - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_SegmentLength - commentId: P:TrinketTinker.Models.MotionData.SegmentLength - fullName: TrinketTinker.Models.MotionData.SegmentLength - nameWithType: MotionData.SegmentLength -- uid: TrinketTinker.Models.MotionData.SegmentLength* - name: SegmentLength - href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_SegmentLength_ - commentId: Overload:TrinketTinker.Models.MotionData.SegmentLength - isSpec: "True" - fullName: TrinketTinker.Models.MotionData.SegmentLength - nameWithType: MotionData.SegmentLength +- uid: TrinketTinker.Models.MotionData.RepeatFrameSets + name: RepeatFrameSets + href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_RepeatFrameSets + commentId: P:TrinketTinker.Models.MotionData.RepeatFrameSets + fullName: TrinketTinker.Models.MotionData.RepeatFrameSets + nameWithType: MotionData.RepeatFrameSets +- uid: TrinketTinker.Models.MotionData.RepeatFrameSets* + name: RepeatFrameSets + href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_RepeatFrameSets_ + commentId: Overload:TrinketTinker.Models.MotionData.RepeatFrameSets + isSpec: "True" + fullName: TrinketTinker.Models.MotionData.RepeatFrameSets + nameWithType: MotionData.RepeatFrameSets +- uid: TrinketTinker.Models.MotionData.RepeatInterval + name: RepeatInterval + href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_RepeatInterval + commentId: P:TrinketTinker.Models.MotionData.RepeatInterval + fullName: TrinketTinker.Models.MotionData.RepeatInterval + nameWithType: MotionData.RepeatInterval +- uid: TrinketTinker.Models.MotionData.RepeatInterval* + name: RepeatInterval + href: api/TrinketTinker.Models.MotionData.html#TrinketTinker_Models_MotionData_RepeatInterval_ + commentId: Overload:TrinketTinker.Models.MotionData.RepeatInterval + isSpec: "True" + fullName: TrinketTinker.Models.MotionData.RepeatInterval + nameWithType: MotionData.RepeatInterval - uid: TrinketTinker.Models.ProcOn name: ProcOn href: api/TrinketTinker.Models.ProcOn.html