mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-01-10 14:17:13 +00:00
Merge pull request #645 from FunkinCrew/gamerbross/char-danceevery
[PUBLIC PR + CHANGES] Fix danceEvery for characters
This commit is contained in:
commit
4d9b506380
|
@ -140,12 +140,12 @@ typedef StageDataProp =
|
|||
* If not zero, this prop will play an animation every X beats of the song.
|
||||
* This requires animations to be defined. If `danceLeft` and `danceRight` are defined,
|
||||
* they will alternated between, otherwise the `idle` animation will be used.
|
||||
*
|
||||
* @default 0
|
||||
* Supports up to 0.25 precision.
|
||||
* @default 0.0
|
||||
*/
|
||||
@:default(0)
|
||||
@:default(0.0)
|
||||
@:optional
|
||||
var danceEvery:Int;
|
||||
var danceEvery:Float;
|
||||
|
||||
/**
|
||||
* How much the prop scrolls relative to the camera. Used to create a parallax effect.
|
||||
|
|
|
@ -91,11 +91,13 @@ typedef LevelPropData =
|
|||
|
||||
/**
|
||||
* The frequency to bop at, in beats.
|
||||
* @default 1 = every beat, 2 = every other beat, etc.
|
||||
* 1 = every beat, 2 = every other beat, etc.
|
||||
* Supports up to 0.25 precision.
|
||||
* @default 0.0
|
||||
*/
|
||||
@:default(1)
|
||||
@:default(0.0)
|
||||
@:optional
|
||||
var danceEvery:Int;
|
||||
var danceEvery:Float;
|
||||
|
||||
/**
|
||||
* The offset on the position to render the prop at.
|
||||
|
|
|
@ -164,7 +164,7 @@ class BaseCharacter extends Bopper
|
|||
|
||||
public function new(id:String, renderType:CharacterRenderType)
|
||||
{
|
||||
super();
|
||||
super(CharacterDataParser.DEFAULT_DANCEEVERY);
|
||||
this.characterId = id;
|
||||
|
||||
_data = CharacterDataParser.fetchCharacterData(this.characterId);
|
||||
|
@ -180,6 +180,7 @@ class BaseCharacter extends Bopper
|
|||
{
|
||||
this.characterName = _data.name;
|
||||
this.name = _data.name;
|
||||
this.danceEvery = _data.danceEvery;
|
||||
this.singTimeSteps = _data.singTime;
|
||||
this.globalOffsets = _data.offsets;
|
||||
this.flipX = _data.flipX;
|
||||
|
|
|
@ -383,21 +383,21 @@ class CharacterDataParser
|
|||
* Values that are too high will cause the character to hold their singing pose for too long after they're done.
|
||||
* @default `8 steps`
|
||||
*/
|
||||
static final DEFAULT_SINGTIME:Float = 8.0;
|
||||
public static final DEFAULT_SINGTIME:Float = 8.0;
|
||||
|
||||
static final DEFAULT_DANCEEVERY:Int = 1;
|
||||
static final DEFAULT_FLIPX:Bool = false;
|
||||
static final DEFAULT_FLIPY:Bool = false;
|
||||
static final DEFAULT_FRAMERATE:Int = 24;
|
||||
static final DEFAULT_ISPIXEL:Bool = false;
|
||||
static final DEFAULT_LOOP:Bool = false;
|
||||
static final DEFAULT_NAME:String = 'Untitled Character';
|
||||
static final DEFAULT_OFFSETS:Array<Float> = [0, 0];
|
||||
static final DEFAULT_HEALTHICON_OFFSETS:Array<Int> = [0, 25];
|
||||
static final DEFAULT_RENDERTYPE:CharacterRenderType = CharacterRenderType.Sparrow;
|
||||
static final DEFAULT_SCALE:Float = 1;
|
||||
static final DEFAULT_SCROLL:Array<Float> = [0, 0];
|
||||
static final DEFAULT_STARTINGANIM:String = 'idle';
|
||||
public static final DEFAULT_DANCEEVERY:Float = 1.0;
|
||||
public static final DEFAULT_FLIPX:Bool = false;
|
||||
public static final DEFAULT_FLIPY:Bool = false;
|
||||
public static final DEFAULT_FRAMERATE:Int = 24;
|
||||
public static final DEFAULT_ISPIXEL:Bool = false;
|
||||
public static final DEFAULT_LOOP:Bool = false;
|
||||
public static final DEFAULT_NAME:String = 'Untitled Character';
|
||||
public static final DEFAULT_OFFSETS:Array<Float> = [0, 0];
|
||||
public static final DEFAULT_HEALTHICON_OFFSETS:Array<Int> = [0, 25];
|
||||
public static final DEFAULT_RENDERTYPE:CharacterRenderType = CharacterRenderType.Sparrow;
|
||||
public static final DEFAULT_SCALE:Float = 1;
|
||||
public static final DEFAULT_SCROLL:Array<Float> = [0, 0];
|
||||
public static final DEFAULT_STARTINGANIM:String = 'idle';
|
||||
|
||||
/**
|
||||
* Set unspecified parameters to their defaults.
|
||||
|
@ -665,10 +665,12 @@ typedef CharacterData =
|
|||
/**
|
||||
* The frequency at which the character will play its idle animation, in beats.
|
||||
* Increasing this number will make the character dance less often.
|
||||
*
|
||||
* @default 1
|
||||
* Supports up to `0.25` precision.
|
||||
* @default `1.0` on characters
|
||||
*/
|
||||
var danceEvery:Null<Int>;
|
||||
@:optional
|
||||
@:default(1.0)
|
||||
var danceEvery:Null<Float>;
|
||||
|
||||
/**
|
||||
* The minimum duration that a character will play a note animation for, in beats.
|
||||
|
|
|
@ -19,8 +19,10 @@ class Bopper extends StageProp implements IPlayStateScriptedClass
|
|||
/**
|
||||
* The bopper plays the dance animation once every `danceEvery` beats.
|
||||
* Set to 0 to disable idle animation.
|
||||
* Supports up to 0.25 precision.
|
||||
* @default 0.0 on props, 1.0 on characters
|
||||
*/
|
||||
public var danceEvery:Int = 1;
|
||||
public var danceEvery:Float = 0.0;
|
||||
|
||||
/**
|
||||
* Whether the bopper should dance left and right.
|
||||
|
@ -110,7 +112,7 @@ class Bopper extends StageProp implements IPlayStateScriptedClass
|
|||
*/
|
||||
var hasDanced:Bool = false;
|
||||
|
||||
public function new(danceEvery:Int = 1)
|
||||
public function new(danceEvery:Float = 0.0)
|
||||
{
|
||||
super();
|
||||
this.danceEvery = danceEvery;
|
||||
|
@ -171,16 +173,20 @@ class Bopper extends StageProp implements IPlayStateScriptedClass
|
|||
}
|
||||
|
||||
/**
|
||||
* Called once every beat of the song.
|
||||
* Called once every step of the song.
|
||||
*/
|
||||
public function onBeatHit(event:SongTimeScriptEvent):Void
|
||||
public function onStepHit(event:SongTimeScriptEvent)
|
||||
{
|
||||
if (danceEvery > 0 && event.beat % danceEvery == 0)
|
||||
if (danceEvery > 0) trace('step hit(${danceEvery}): ${event.step % (danceEvery * Constants.STEPS_PER_BEAT)} == 0?');
|
||||
if (danceEvery > 0 && (event.step % (danceEvery * Constants.STEPS_PER_BEAT)) == 0)
|
||||
{
|
||||
trace('dance onStepHit!');
|
||||
dance(shouldBop);
|
||||
}
|
||||
}
|
||||
|
||||
public function onBeatHit(event:SongTimeScriptEvent):Void {}
|
||||
|
||||
/**
|
||||
* Called every `danceEvery` beats of the song.
|
||||
*/
|
||||
|
@ -367,8 +373,6 @@ class Bopper extends StageProp implements IPlayStateScriptedClass
|
|||
|
||||
public function onNoteGhostMiss(event:GhostMissNoteScriptEvent) {}
|
||||
|
||||
public function onStepHit(event:SongTimeScriptEvent) {}
|
||||
|
||||
public function onCountdownStart(event:CountdownScriptEvent) {}
|
||||
|
||||
public function onCountdownStep(event:CountdownScriptEvent) {}
|
||||
|
|
Loading…
Reference in a new issue