Skip to content

Commit

Permalink
Fix an issue where field Watch would trigger a NOR
Browse files Browse the repository at this point in the history
  • Loading branch information
EliteMasterEric committed Jun 5, 2024
1 parent a7d8e3b commit 0bc6844
Showing 1 changed file with 29 additions and 25 deletions.
54 changes: 29 additions & 25 deletions flixel/group/FlxSpriteGroup.hx
Original file line number Diff line number Diff line change
Expand Up @@ -574,10 +574,10 @@ class FlxTypedSpriteGroup<T:FlxSprite> extends FlxSprite
if (sprite != null)
sprite.reset(sprite.x + X - x, sprite.y + Y - y);
}

// prevent any transformations on children, mainly from setter overrides
_skipTransformChildren = true;

// recreate super.reset() but call super.revive instead of revive
touching = NONE;
wasTouching = NONE;
Expand All @@ -586,7 +586,7 @@ class FlxTypedSpriteGroup<T:FlxSprite> extends FlxSprite
// last.set(x, y); // null on sprite groups
velocity.set();
super.revive();

_skipTransformChildren = false;
}

Expand Down Expand Up @@ -823,72 +823,72 @@ class FlxTypedSpriteGroup<T:FlxSprite> extends FlxSprite
{
if (length == 0)
return 0;

return findMaxXHelper() - findMinXHelper();
}

/**
* Returns the left-most position of the left-most member.
* If there are no members, x is returned.
*
*
* @since 5.0.0
*/
public function findMinX()
{
return length == 0 ? x : findMinXHelper();
}

function findMinXHelper()
{
var value = Math.POSITIVE_INFINITY;
for (member in _sprites)
{
if (member == null)
continue;

var minX:Float;
if (member.flixelType == SPRITEGROUP)
minX = (cast member:FlxSpriteGroup).findMinX();
else
minX = member.x;

if (minX < value)
value = minX;
}
return value;
}

/**
* Returns the right-most position of the right-most member.
* If there are no members, x is returned.
*
*
* @since 5.0.0
*/
public function findMaxX()
{
return length == 0 ? x : findMaxXHelper();
}

function findMaxXHelper()
{
var value = Math.NEGATIVE_INFINITY;
for (member in _sprites)
{
if (member == null)
continue;

var maxX:Float;
if (member.flixelType == SPRITEGROUP)
maxX = (cast member:FlxSpriteGroup).findMaxX();
else
maxX = member.x + member.width;

if (maxX > value)
value = maxX;
}
return value;
}

/**
* This functionality isn't supported in SpriteGroup
*/
Expand All @@ -901,66 +901,66 @@ class FlxTypedSpriteGroup<T:FlxSprite> extends FlxSprite
{
if (length == 0)
return 0;

return findMaxYHelper() - findMinYHelper();
}

/**
* Returns the top-most position of the top-most member.
* If there are no members, y is returned.
*
*
* @since 5.0.0
*/
public function findMinY()
{
return length == 0 ? y : findMinYHelper();
}

function findMinYHelper()
{
var value = Math.POSITIVE_INFINITY;
for (member in _sprites)
{
if (member == null)
continue;

var minY:Float;
if (member.flixelType == SPRITEGROUP)
minY = (cast member:FlxSpriteGroup).findMinY();
else
minY = member.y;

if (minY < value)
value = minY;
}
return value;
}

/**
* Returns the top-most position of the top-most member.
* If there are no members, y is returned.
*
*
* @since 5.0.0
*/
public function findMaxY()
{
return length == 0 ? y : findMaxYHelper();
}

function findMaxYHelper()
{
var value = Math.NEGATIVE_INFINITY;
for (member in _sprites)
{
if (member == null)
continue;

var maxY:Float;
if (member.flixelType == SPRITEGROUP)
maxY = (cast member:FlxSpriteGroup).findMaxY();
else
maxY = member.y + member.height;

if (maxY > value)
value = maxY;
}
Expand All @@ -971,21 +971,25 @@ class FlxTypedSpriteGroup<T:FlxSprite> extends FlxSprite

inline function get_length():Int
{
if (group == null) return 0;
return group.length;
}

inline function get_maxSize():Int
{
if (group == null) return 0;
return group.maxSize;
}

inline function set_maxSize(Size:Int):Int
{
if (group == null) return 0;
return group.maxSize = Size;
}

inline function get_members():Array<T>
{
if (group == null) return [];
return group.members;
}

Expand Down

0 comments on commit 0bc6844

Please sign in to comment.