Skip to content

Commit

Permalink
Use Origin enum instead of values
Browse files Browse the repository at this point in the history
  • Loading branch information
Reco1I committed Sep 19, 2024
1 parent 2835639 commit b6fc1c9
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 22 deletions.
33 changes: 29 additions & 4 deletions src/com/reco1l/osu/graphics/ExtendedEntity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,9 @@ open class ExtendedEntity(
}


@JvmOverloads
fun setOrigin(x: Float, y: Float = x) {
originX = x
originY = y
fun setOrigin(origin: Origin) {
originX = origin.factorX
originY = origin.factorY
}


Expand Down Expand Up @@ -219,4 +218,30 @@ open class ExtendedEntity(
|| mY + this.height < pCamera.minY
}

}


/**
* Determines the origin of the sprite.
*/
enum class Origin(val factorX: Float, val factorY: Float) {

TopLeft(0f, 0f),

TopCenter(0.5f, 0f),

TopRight(1f, 0f),

CenterLeft(0f, 0.5f),

Center(0.5f, 0.5f),

CenterRight(1f, 0.5f),

BottomLeft(0f, 1f),

BottomCenter(0.5f, 1f),

BottomRight(1f, 1f)

}
3 changes: 2 additions & 1 deletion src/ru/nsu/ccfit/zuev/osu/game/BreakAnimator.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ru.nsu.ccfit.zuev.osu.game;

import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Origin;
import com.reco1l.osu.multiplayer.Multiplayer;
import com.reco1l.osu.multiplayer.RoomScene;
import org.anddev.andengine.entity.modifier.*;
Expand Down Expand Up @@ -83,7 +84,7 @@ public void init(final float length) {
ending = stat.getHp() > 0.5f ? "pass" : "fail";

passfail = new ExtendedSprite();
passfail.setOrigin(0.5f, 0.5f);
passfail.setOrigin(Origin.Center);
passfail.setPosition(Config.getRES_WIDTH() / 2f, Config.getRES_HEIGHT() / 2f);
passfail.setTextureRegion(ResourceManager.getInstance().getTexture("section-" + ending));

Expand Down
5 changes: 3 additions & 2 deletions src/ru/nsu/ccfit/zuev/osu/game/Countdown.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.graphics.PointF;

import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Origin;

import org.anddev.andengine.entity.modifier.DelayModifier;
import org.anddev.andengine.entity.modifier.FadeInModifier;
Expand Down Expand Up @@ -38,7 +39,7 @@ public Countdown(final GameObjectListener listener, final Scene scene,
final PointF center = Utils.trackToRealCoords(new PointF((float) Constants.MAP_WIDTH / 2, (float) Constants.MAP_HEIGHT / 2));

ready = new ExtendedSprite();
ready.setOrigin(0.5f, 0.5f);
ready.setOrigin(Origin.Center);
ready.setPosition(center.x, center.y);
ready.setTextureRegion(ResourceManager.getInstance().getTexture("ready"));

Expand Down Expand Up @@ -87,7 +88,7 @@ public Countdown(final GameObjectListener listener, final Scene scene,
new FadeOutModifier(COUNTDOWN_LENGTH * speed / 18)));

go = new ExtendedSprite();
go.setOrigin(0.5f, 0.5f);
go.setOrigin(Origin.Center);
go.setPosition(center.x, center.y);
go.setTextureRegion(ResourceManager.getInstance().getTexture("go"));

Expand Down
3 changes: 2 additions & 1 deletion src/ru/nsu/ccfit/zuev/osu/game/HitCircle.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Modifiers;
import com.reco1l.osu.graphics.Origin;
import com.reco1l.osu.playfield.NumberedCirclePiece;
import com.rian.osu.mods.ModHidden;

Expand Down Expand Up @@ -35,7 +36,7 @@ public class HitCircle extends GameObject {
public HitCircle() {
circlePiece = new NumberedCirclePiece("hitcircle", "hitcircleoverlay");
approachCircle = new ExtendedSprite();
approachCircle.setOrigin(0.5f, 0.5f);
approachCircle.setOrigin(Origin.Center);
approachCircle.setTextureRegion(ResourceManager.getInstance().getTexture("approachcircle"));
}

Expand Down
11 changes: 6 additions & 5 deletions src/ru/nsu/ccfit/zuev/osu/game/ModernSpinner.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.reco1l.osu.Execution;
import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Modifiers;
import com.reco1l.osu.graphics.Origin;

import org.anddev.andengine.entity.IEntity;
import org.anddev.andengine.entity.scene.Scene;
Expand Down Expand Up @@ -49,27 +50,27 @@ public ModernSpinner() {
center = Utils.trackToRealCoords(new PointF((float) Constants.MAP_WIDTH / 2, (float) Constants.MAP_HEIGHT / 2));

middle = new ExtendedSprite();
middle.setOrigin(0.5f, 0.5f);
middle.setOrigin(Origin.Center);
middle.setPosition(center.x, center.y);
middle.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-middle"));

middle2 = new ExtendedSprite();
middle2.setOrigin(0.5f, 0.5f);
middle2.setOrigin(Origin.Center);
middle2.setPosition(center.x, center.y);
middle2.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-middle2"));

bottom = new ExtendedSprite();
bottom.setOrigin(0.5f, 0.5f);
bottom.setOrigin(Origin.Center);
bottom.setPosition(center.x, center.y);
bottom.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-bottom"));

top = new ExtendedSprite();
top.setOrigin(0.5f, 0.5f);
top.setOrigin(Origin.Center);
top.setPosition(center.x, center.y);
top.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-top"));

glow = new ExtendedSprite();
glow.setOrigin(0.5f, 0.5f);
glow.setOrigin(Origin.Center);
glow.setPosition(center.x, center.y);
glow.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-glow"));

Expand Down
7 changes: 4 additions & 3 deletions src/ru/nsu/ccfit/zuev/osu/game/Slider.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.reco1l.osu.Execution;
import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Modifiers;
import com.reco1l.osu.graphics.Origin;
import com.reco1l.osu.playfield.CirclePiece;
import com.reco1l.osu.playfield.NumberedCirclePiece;
import com.reco1l.osu.playfield.SliderTickContainer;
Expand Down Expand Up @@ -114,15 +115,15 @@ public Slider() {
tailCirclePiece = new CirclePiece("sliderendcircle", "sliderendcircleoverlay");

approachCircle = new ExtendedSprite();
approachCircle.setOrigin(0.5f, 0.5f);
approachCircle.setOrigin(Origin.Center);
approachCircle.setTextureRegion(ResourceManager.getInstance().getTexture("approachcircle"));

startArrow = new ExtendedSprite();
startArrow.setOrigin(0.5f, 0.5f);
startArrow.setOrigin(Origin.Center);
startArrow.setTextureRegion(ResourceManager.getInstance().getTexture("reversearrow"));

endArrow = new ExtendedSprite();
endArrow.setOrigin(0.5f, 0.5f);
endArrow.setOrigin(Origin.Center);
endArrow.setTextureRegion(ResourceManager.getInstance().getTexture("reversearrow"));

int ballFrameCount = SkinManager.getFrames("sliderb");
Expand Down
11 changes: 6 additions & 5 deletions src/ru/nsu/ccfit/zuev/osu/game/Spinner.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.reco1l.osu.Execution;
import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Modifiers;
import com.reco1l.osu.graphics.Origin;
import com.rian.osu.beatmap.hitobject.BankHitSampleInfo;
import com.rian.osu.beatmap.hitobject.HitSampleInfo;

Expand Down Expand Up @@ -57,13 +58,13 @@ public Spinner() {
center = Utils.trackToRealCoords(pos);

background = new ExtendedSprite();
background.setOrigin(0.5f, 0.5f);
background.setOrigin(Origin.Center);
background.setPosition(center.x, center.y);
background.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-background"));
background.setScale(Config.getRES_WIDTH() / background.getWidth());

circle = new ExtendedSprite();
circle.setOrigin(0.5f, 0.5f);
circle.setOrigin(Origin.Center);
circle.setPosition(center.x, center.y);
circle.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-circle"));

Expand All @@ -74,17 +75,17 @@ public Spinner() {
metre.setHeight(background.getHeightScaled());

approachCircle = new ExtendedSprite();
approachCircle.setOrigin(0.5f, 0.5f);
approachCircle.setOrigin(Origin.Center);
approachCircle.setPosition(center.x, center.y);
approachCircle.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-approachcircle"));

spinText = new ExtendedSprite();
spinText.setOrigin(0.5f, 0.5f);
spinText.setOrigin(Origin.Center);
spinText.setPosition(center.x, center.y * 1.5f);
spinText.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-spin"));

clearText = new ExtendedSprite();
clearText.setOrigin(0.5f, 0.5f);
clearText.setOrigin(Origin.Center);
clearText.setPosition(center.x, center.y * 0.5f);
clearText.setTextureRegion(ResourceManager.getInstance().getTexture("spinner-clear"));

Expand Down
3 changes: 2 additions & 1 deletion src/ru/nsu/ccfit/zuev/osu/menu/LoadingScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.annotation.SuppressLint;

import com.reco1l.osu.graphics.ExtendedSprite;
import com.reco1l.osu.graphics.Origin;

import org.anddev.andengine.engine.handler.IUpdateHandler;
import org.anddev.andengine.entity.modifier.FadeOutModifier;
Expand Down Expand Up @@ -63,7 +64,7 @@ public LoadingScreen() {
percentage = -1;

var circle = new ExtendedSprite();
circle.setOrigin(0.5f, 0.5f);
circle.setOrigin(Origin.Center);
circle.setPosition(Config.getRES_WIDTH() / 2f, Config.getRES_HEIGHT() / 2f);
circle.setTextureRegion(ResourceManager.getInstance().getTexture("loading"));
circle.registerEntityModifier(new LoopEntityModifier(new RotationByModifier(2.0f, 360)));
Expand Down

0 comments on commit b6fc1c9

Please sign in to comment.