You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-20 07:26:18 +00:00
🆙 Small fix in the roller manager
This commit is contained in:
@@ -30,7 +30,6 @@ public class RoomRollerManager {
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger(RoomRollerManager.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(RoomRollerManager.class);
|
||||||
|
|
||||||
private final Room room;
|
private final Room room;
|
||||||
private long rollerCycle = System.currentTimeMillis();
|
|
||||||
|
|
||||||
public RoomRollerManager(Room room) {
|
public RoomRollerManager(Room room) {
|
||||||
this.room = room;
|
this.room = room;
|
||||||
@@ -43,22 +42,13 @@ public class RoomRollerManager {
|
|||||||
* @return true if roller cycle was processed
|
* @return true if roller cycle was processed
|
||||||
*/
|
*/
|
||||||
public boolean processRollerCycle(THashSet<RoomUnit> updatedUnit, long cycleTimestamp) {
|
public boolean processRollerCycle(THashSet<RoomUnit> updatedUnit, long cycleTimestamp) {
|
||||||
int rollerSpeed = this.room.getRollerSpeed();
|
// Note: cycle gating is handled by RoomCycleManager.processRollers().
|
||||||
|
// Do not add a second gate here — it would cause rollers to fire at
|
||||||
if (rollerSpeed == -1) {
|
// speed^2 intervals instead of the intended speed.
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.rollerCycle < rollerSpeed) {
|
|
||||||
this.rollerCycle++;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.rollerCycle = 0;
|
|
||||||
|
|
||||||
THashSet<MessageComposer> messages = new THashSet<>();
|
THashSet<MessageComposer> messages = new THashSet<>();
|
||||||
List<Integer> rollerFurniIds = new ArrayList<>();
|
THashSet<Integer> rollerFurniIds = new THashSet<>();
|
||||||
List<Integer> rolledUnitIds = new ArrayList<>();
|
THashSet<Integer> rolledUnitIds = new THashSet<>();
|
||||||
|
|
||||||
this.room.getRoomSpecialTypes().getRollers().forEachValue(roller -> {
|
this.room.getRoomSpecialTypes().getRollers().forEachValue(roller -> {
|
||||||
processRoller(roller, messages, rollerFurniIds, rolledUnitIds, updatedUnit);
|
processRoller(roller, messages, rollerFurniIds, rolledUnitIds, updatedUnit);
|
||||||
@@ -82,7 +72,7 @@ public class RoomRollerManager {
|
|||||||
* Processes a single roller and its contents.
|
* Processes a single roller and its contents.
|
||||||
*/
|
*/
|
||||||
private void processRoller(InteractionRoller roller, THashSet<MessageComposer> messages,
|
private void processRoller(InteractionRoller roller, THashSet<MessageComposer> messages,
|
||||||
List<Integer> rollerFurniIds, List<Integer> rolledUnitIds,
|
THashSet<Integer> rollerFurniIds, THashSet<Integer> rolledUnitIds,
|
||||||
THashSet<RoomUnit> updatedUnit) {
|
THashSet<RoomUnit> updatedUnit) {
|
||||||
|
|
||||||
HabboItem newRoller = null;
|
HabboItem newRoller = null;
|
||||||
@@ -218,14 +208,6 @@ public class RoomRollerManager {
|
|||||||
zOffset = -Item.getCurrentHeight(roller) + tileInFront.getStackHeight() - rollerTile.z;
|
zOffset = -Item.getCurrentHeight(roller) + tileInFront.getStackHeight() - rollerTile.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rollerTile.hasUnits()) {
|
|
||||||
StringBuilder allRollers = new StringBuilder();
|
|
||||||
this.room.getRoomSpecialTypes().getRollers().forEachValue(r -> {
|
|
||||||
allRollers.append(String.format("id=%d@(%d,%d)rot=%d ", r.getId(), r.getX(), r.getY(), r.getRotation()));
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Process units on roller
|
// Process units on roller
|
||||||
if (allowUsers) {
|
if (allowUsers) {
|
||||||
processUnitsOnRoller(roller, rollerTile, tileInFront, topItem,
|
processUnitsOnRoller(roller, rollerTile, tileInFront, topItem,
|
||||||
@@ -265,7 +247,7 @@ public class RoomRollerManager {
|
|||||||
THashSet<HabboItem> itemsNewTile,
|
THashSet<HabboItem> itemsNewTile,
|
||||||
boolean stackContainsRoller, boolean allowFurniture,
|
boolean stackContainsRoller, boolean allowFurniture,
|
||||||
double zOffset, THashSet<MessageComposer> messages,
|
double zOffset, THashSet<MessageComposer> messages,
|
||||||
List<Integer> rolledUnitIds, THashSet<RoomUnit> updatedUnit) {
|
THashSet<Integer> rolledUnitIds, THashSet<RoomUnit> updatedUnit) {
|
||||||
|
|
||||||
Event roomUserRolledEvent = null;
|
Event roomUserRolledEvent = null;
|
||||||
|
|
||||||
@@ -388,7 +370,7 @@ public class RoomRollerManager {
|
|||||||
private void processFurnitureOnRoller(InteractionRoller roller, THashSet<HabboItem> itemsOnRoller,
|
private void processFurnitureOnRoller(InteractionRoller roller, THashSet<HabboItem> itemsOnRoller,
|
||||||
HabboItem newRoller, HabboItem topItem, RoomTile tileInFront,
|
HabboItem newRoller, HabboItem topItem, RoomTile tileInFront,
|
||||||
double zOffset, THashSet<MessageComposer> messages,
|
double zOffset, THashSet<MessageComposer> messages,
|
||||||
List<Integer> rollerFurniIds) {
|
THashSet<Integer> rollerFurniIds) {
|
||||||
|
|
||||||
Event furnitureRolledEvent = null;
|
Event furnitureRolledEvent = null;
|
||||||
|
|
||||||
@@ -438,17 +420,4 @@ public class RoomRollerManager {
|
|||||||
return this.room.getLayout().getFloorAltitude(targetTile.x, targetTile.y);
|
return this.room.getLayout().getFloorAltitude(targetTile.x, targetTile.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the current roller cycle value.
|
|
||||||
*/
|
|
||||||
public long getRollerCycle() {
|
|
||||||
return this.rollerCycle;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resets the roller cycle.
|
|
||||||
*/
|
|
||||||
public void resetRollerCycle() {
|
|
||||||
this.rollerCycle = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user