Add utility method for time to tick conversion for better readability.

This commit is contained in:
Florian Nücke
2022-01-11 07:12:05 +01:00
parent d73d0c0b0a
commit ab17078ed5
10 changed files with 42 additions and 27 deletions

View File

@@ -1,6 +1,6 @@
package li.cil.oc2.client.audio;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.util.TickUtils;
import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundSource;
@@ -9,9 +9,10 @@ import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.phys.Vec3;
import java.time.Duration;
public final class LoopingBlockEntitySound extends AbstractTickableSoundInstance {
private static final float FADE_IN_DURATION_IN_SECONDS = 2.0f;
private static final float FADE_IN_DURATION_IN_TICKS = FADE_IN_DURATION_IN_SECONDS * Constants.SECONDS_TO_TICKS;
private static final float FADE_IN_DURATION_IN_TICKS = TickUtils.toTicks(Duration.ofSeconds(2));
private static final float FADE_IN_PER_TICK = 1f / FADE_IN_DURATION_IN_TICKS;
///////////////////////////////////////////////////////////////////

View File

@@ -23,10 +23,7 @@ import li.cil.oc2.common.network.message.ComputerBusStateMessage;
import li.cil.oc2.common.network.message.ComputerRunStateMessage;
import li.cil.oc2.common.network.message.ComputerTerminalOutputMessage;
import li.cil.oc2.common.serialization.NBTSerialization;
import li.cil.oc2.common.util.HorizontalBlockUtils;
import li.cil.oc2.common.util.NBTUtils;
import li.cil.oc2.common.util.SoundEvents;
import li.cil.oc2.common.util.TerminalUtils;
import li.cil.oc2.common.util.*;
import li.cil.oc2.common.vm.*;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -45,9 +42,11 @@ import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
import java.time.Duration;
import java.util.*;
import static li.cil.oc2.common.Constants.*;
import static li.cil.oc2.common.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM;
import static li.cil.oc2.common.Constants.ITEMS_TAG_NAME;
public final class ComputerBlockEntity extends ModBlockEntity implements TerminalUserProvider {
private static final String BUS_ELEMENT_TAG_NAME = "busElement";
@@ -61,7 +60,7 @@ public final class ComputerBlockEntity extends ModBlockEntity implements Termina
private static final int FLASH_MEMORY_SLOTS = 1;
private static final int CARD_SLOTS = 4;
private static final int MAX_RUNNING_SOUND_DELAY = SECONDS_TO_TICKS * 2;
private static final int MAX_RUNNING_SOUND_DELAY = TickUtils.toTicks(Duration.ofSeconds(2));
///////////////////////////////////////////////////////////////////

View File

@@ -8,10 +8,7 @@ import li.cil.oc2.common.capabilities.Capabilities;
import li.cil.oc2.common.item.Items;
import li.cil.oc2.common.network.Network;
import li.cil.oc2.common.network.message.NetworkConnectorConnectionsMessage;
import li.cil.oc2.common.util.ItemStackUtils;
import li.cil.oc2.common.util.LazyOptionalUtils;
import li.cil.oc2.common.util.NBTTagIds;
import li.cil.oc2.common.util.ServerScheduler;
import li.cil.oc2.common.util.*;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -33,6 +30,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.util.LazyOptional;
import javax.annotation.Nullable;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -51,7 +49,7 @@ public final class NetworkConnectorBlockEntity extends ModBlockEntity {
private static final String CONNECTIONS_TAG_NAME = "connections";
private static final String IS_OWNER_TAG_NAME = "is_owner";
private static final int RETRY_UNLOADED_CHUNK_INTERVAL = 5 * Constants.SECONDS_TO_TICKS;
private static final int RETRY_UNLOADED_CHUNK_INTERVAL = TickUtils.toTicks(Duration.ofSeconds(5));
private static final int MAX_CONNECTION_COUNT = 2;
private static final int MAX_CONNECTION_DISTANCE = 16;
private static final int INITIAL_PACKET_TIME_TO_LIVE = 12;

View File

@@ -3,12 +3,13 @@ package li.cil.oc2.common.bus;
import li.cil.oc2.api.bus.DeviceBusController;
import li.cil.oc2.api.bus.DeviceBusElement;
import li.cil.oc2.api.bus.device.Device;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.util.Event;
import li.cil.oc2.common.util.LazyOptionalUtils;
import li.cil.oc2.common.util.ParameterizedEvent;
import li.cil.oc2.common.util.TickUtils;
import net.minecraftforge.common.util.LazyOptional;
import java.time.Duration;
import java.util.*;
import static java.util.Collections.emptySet;
@@ -25,8 +26,8 @@ public class CommonDeviceBusController implements DeviceBusController {
///////////////////////////////////////////////////////////////////
private static final int MAX_BUS_ELEMENT_COUNT = 128;
private static final int INCOMPLETE_RETRY_INTERVAL = 10 * Constants.SECONDS_TO_TICKS;
private static final int BAD_CONFIGURATION_RETRY_INTERVAL = 5 * Constants.SECONDS_TO_TICKS;
private static final int INCOMPLETE_RETRY_INTERVAL = TickUtils.toTicks(Duration.ofSeconds(10));
private static final int BAD_CONFIGURATION_RETRY_INTERVAL = TickUtils.toTicks(Duration.ofSeconds(5));
///////////////////////////////////////////////////////////////////

View File

@@ -5,8 +5,8 @@ import li.cil.oc2.api.bus.device.object.Parameter;
import li.cil.oc2.api.capabilities.Robot;
import li.cil.oc2.api.util.RobotOperationSide;
import li.cil.oc2.common.Config;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.util.FakePlayerUtils;
import li.cil.oc2.common.util.TickUtils;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@@ -38,12 +38,13 @@ import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemStackHandler;
import javax.annotation.Nullable;
import java.time.Duration;
import java.util.List;
public final class BlockOperationsModuleDevice extends AbstractItemRPCDevice {
private static final String LAST_OPERATION_TAG_NAME = "cooldown";
private static final int COOLDOWN = Constants.SECONDS_TO_TICKS;
private static final int COOLDOWN = TickUtils.toTicks(Duration.ofSeconds(1));
///////////////////////////////////////////////////////////////////

View File

@@ -2,8 +2,8 @@ package li.cil.oc2.common.bus.device.item;
import li.cil.oc2.api.bus.device.object.Callback;
import li.cil.oc2.api.bus.device.object.Parameter;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.util.Location;
import li.cil.oc2.common.util.TickUtils;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
@@ -13,13 +13,14 @@ import net.minecraft.world.level.LevelAccessor;
import net.minecraftforge.registries.ForgeRegistries;
import javax.annotation.Nullable;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.function.Supplier;
public final class SoundCardItemDevice extends AbstractItemRPCDevice {
private static final int COOLDOWN_IN_TICKS = 2 * Constants.SECONDS_TO_TICKS;
private static final int COOLDOWN_IN_TICKS = TickUtils.toTicks(Duration.ofSeconds(2));
private static final int MAX_FIND_RESULTS = 25;
///////////////////////////////////////////////////////////////////

View File

@@ -1,10 +1,10 @@
package li.cil.oc2.common.entity.robot;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.entity.Entities;
import li.cil.oc2.common.entity.Robot;
import li.cil.oc2.common.util.NBTTagIds;
import li.cil.oc2.common.util.NBTUtils;
import li.cil.oc2.common.util.TickUtils;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@@ -13,6 +13,7 @@ import net.minecraft.world.entity.MoverType;
import net.minecraft.world.phys.Vec3;
import javax.annotation.Nullable;
import java.time.Duration;
import java.util.Objects;
public final class RobotMovementAction extends AbstractRobotAction {
@@ -20,7 +21,7 @@ public final class RobotMovementAction extends AbstractRobotAction {
///////////////////////////////////////////////////////////////////
private static final float MOVEMENT_SPEED = 1f / Constants.SECONDS_TO_TICKS; // block / sec -> block / tick.
private static final float MOVEMENT_SPEED = 1f / TickUtils.toTicks(Duration.ofSeconds(1)); // blocks per tick
private static final String DIRECTION_TAG_NAME = "direction";
private static final String ORIGIN_TAG_NAME = "origin";

View File

@@ -1,21 +1,22 @@
package li.cil.oc2.common.entity.robot;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.entity.Robot;
import li.cil.oc2.common.util.NBTTagIds;
import li.cil.oc2.common.util.NBTUtils;
import li.cil.oc2.common.util.TickUtils;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.util.Mth;
import javax.annotation.Nullable;
import java.time.Duration;
public final class RobotRotationAction extends AbstractRobotAction {
public static final float TARGET_EPSILON = 0.0001f;
///////////////////////////////////////////////////////////////////
private static final float ROTATION_SPEED = 90f / Constants.SECONDS_TO_TICKS; // degrees / sec -> degrees / tick
private static final float ROTATION_SPEED = 90f / TickUtils.toTicks(Duration.ofSeconds(1)); // degrees per tick
private static final String DIRECTION_TAG_NAME = "direction";
private static final String TARGET_TAG_NAME = "start";

View File

@@ -0,0 +1,11 @@
package li.cil.oc2.common.util;
import li.cil.oc2.common.Constants;
import java.time.Duration;
public final class TickUtils {
public static int toTicks(final Duration duration) {
return (int) (duration.getSeconds() * Constants.SECONDS_TO_TICKS);
}
}

View File

@@ -3,13 +3,13 @@ package li.cil.oc2.common.vm;
import li.cil.ceres.api.Serialized;
import li.cil.oc2.api.bus.device.vm.FirmwareLoader;
import li.cil.oc2.api.bus.device.vm.VMDeviceLoadResult;
import li.cil.oc2.api.bus.device.vm.event.VMPausingEvent;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.bus.CommonDeviceBusController;
import li.cil.oc2.common.bus.RPCDeviceBusAdapter;
import li.cil.oc2.common.serialization.NBTSerialization;
import li.cil.oc2.common.util.NBTTagIds;
import li.cil.oc2.common.util.NBTUtils;
import li.cil.oc2.common.util.TickUtils;
import li.cil.oc2.common.vm.context.global.GlobalVMContext;
import li.cil.sedna.api.memory.MemoryAccessException;
import li.cil.sedna.riscv.R5Board;
@@ -22,6 +22,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.annotation.Nullable;
import java.time.Duration;
import java.util.Objects;
public abstract class AbstractVirtualMachine implements VirtualMachine {
@@ -36,7 +37,7 @@ public abstract class AbstractVirtualMachine implements VirtualMachine {
public static final String RUN_STATE_TAG_NAME = "runState";
public static final String BOOT_ERROR_TAG_NAME = "bootError";
private static final int DEVICE_LOAD_RETRY_INTERVAL = 10 * Constants.SECONDS_TO_TICKS;
private static final int DEVICE_LOAD_RETRY_INTERVAL = TickUtils.toTicks(Duration.ofSeconds(10));
///////////////////////////////////////////////////////////////////