--- a/net/minecraft/world/level/block/RedstoneTorchBlock.java
+++ b/net/minecraft/world/level/block/RedstoneTorchBlock.java
@@ -73,10 +_,10 @@
     protected void tick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) {
         boolean hasNeighborSignal = this.hasNeighborSignal(level, pos, state);
         // Paper start - Faster redstone torch rapid clock removal
-        java.util.ArrayDeque<RedstoneTorchBlock.Toggle> redstoneUpdateInfos = level.redstoneUpdateInfos;
+        java.util.ArrayDeque<RedstoneTorchBlock.Toggle> redstoneUpdateInfos = level.getCurrentWorldData().redstoneUpdateInfos; // Folia - region threading
         if (redstoneUpdateInfos != null) {
             RedstoneTorchBlock.Toggle curr;
-            while ((curr = redstoneUpdateInfos.peek()) != null && level.getGameTime() - curr.when > 60L) {
+            while ((curr = redstoneUpdateInfos.peek()) != null && level.getRedstoneGameTime() - curr.when > 60L) { // Folia - region threading
                 redstoneUpdateInfos.poll();
             }
         }
@@ -154,13 +_,13 @@
 
     private static boolean isToggledTooFrequently(Level level, BlockPos pos, boolean logToggle) {
         // Paper start - Faster redstone torch rapid clock removal
-        java.util.ArrayDeque<RedstoneTorchBlock.Toggle> list = level.redstoneUpdateInfos;
+        java.util.ArrayDeque<RedstoneTorchBlock.Toggle> list = level.getCurrentWorldData().redstoneUpdateInfos; // Folia - region threading
         if (list == null) {
-            list = level.redstoneUpdateInfos = new java.util.ArrayDeque<>();
+            list = level.getCurrentWorldData().redstoneUpdateInfos = new java.util.ArrayDeque<>(); // Folia - region threading
         }
         // Paper end - Faster redstone torch rapid clock removal
         if (logToggle) {
-            list.add(new RedstoneTorchBlock.Toggle(pos.immutable(), level.getGameTime()));
+            list.add(new RedstoneTorchBlock.Toggle(pos.immutable(), level.getRedstoneGameTime())); // Folia - region threading
         }
 
         int i = 0;
@@ -182,12 +_,18 @@
     }
 
     public static class Toggle {
-        final BlockPos pos;
-        final long when;
+        public final BlockPos pos; // Folia - region threading
+        long when; // Folia - region threading
 
         public Toggle(BlockPos pos, long when) {
             this.pos = pos;
             this.when = when;
         }
+
+        // Folia start - region ticking
+        public void offsetTime(long offset) {
+            this.when += offset;
+        }
+        // Folia end - region ticking
     }
 }
