🆙 Small fix in the roller manager

This commit is contained in:
DuckieTM
2026-03-13 22:54:12 +01:00
parent eb6dd132f5
commit d2596a07ff
@@ -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;
}
} }