How many seconds in eternity?
This commit is contained in:
parent
7107936a61
commit
ed5f002edc
15 changed files with 304 additions and 34 deletions
|
@ -25,6 +25,9 @@ dependencies {
|
|||
//.. maybe?
|
||||
modApi "curse.maven:cc-restitched-462672:3908334"
|
||||
modCompileOnly "curse.maven:cc-restitched-462672:3908334"
|
||||
|
||||
// Create!
|
||||
modCompileOnly "curse.maven:create-fabric-624165:4537370"
|
||||
}
|
||||
|
||||
loom {
|
||||
|
|
|
@ -1,34 +1,18 @@
|
|||
package su.a71.tardim_ic.tardim_ic;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockTardimDoors;
|
||||
import com.swdteam.tardim.common.block.BlockTardimFloor;
|
||||
import com.swdteam.tardim.common.block.BlockTardimRoof;
|
||||
import com.swdteam.tardim.common.init.TardimRegistry;
|
||||
import com.swdteam.tardim.tileentity.TileEntityTardim;
|
||||
|
||||
|
||||
import com.mojang.datafixers.types.Type;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.util.datafix.fixes.References;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityTicker;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
|
||||
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
|
||||
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
|
||||
import su.a71.tardim_ic.tardim_ic.jammer.LocationJammerMaterial;
|
||||
import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock;
|
||||
|
@ -36,12 +20,11 @@ import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity;
|
|||
import su.a71.tardim_ic.tardim_ic.Constants;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.CommandInit;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.CreateCompat;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Exteriors;
|
||||
import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity;
|
||||
|
||||
public class Registration {
|
||||
// Blocks
|
||||
|
||||
public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock();
|
||||
|
||||
// Tile Entities
|
||||
|
@ -70,6 +53,9 @@ public class Registration {
|
|||
if (FabricLoader.getInstance().isModLoaded("computercraft")) {
|
||||
ComputerCraftCompat.register(); // Register ComputerCraft-related features
|
||||
}
|
||||
if (FabricLoader.getInstance().isModLoaded("create")) {
|
||||
CreateCompat.register(); // Register Create-related features
|
||||
}
|
||||
Exteriors.register(); // Register custom TARDIM exteriors
|
||||
|
||||
Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT);
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage;
|
||||
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.source.PercentOrProgressBarDisplaySource;
|
||||
import com.simibubi.create.foundation.gui.ModularGuiLineBuilder;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import com.swdteam.tardim.common.init.TRDDimensions;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import com.swdteam.tardim.tileentity.TileEntityFuelStorage;
|
||||
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
import static su.a71.tardim_ic.tardim_ic.Constants.LOG;
|
||||
|
||||
public class FuelLevelDisplaySource extends PercentOrProgressBarDisplaySource {
|
||||
@Override
|
||||
protected Float getProgress(DisplayLinkContext context) {
|
||||
if (context.level() != context.level().getServer().getLevel(TRDDimensions.TARDIS)) {
|
||||
return null;
|
||||
}
|
||||
BlockEntity te = context.getSourceTE();
|
||||
if (!(te instanceof TileEntityFuelStorage fuelStorage))
|
||||
return null;
|
||||
TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos());
|
||||
LOG.info(String.valueOf((float) (data.getFuel())));
|
||||
return (float) (data.getFuel() / 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean progressBarActive(DisplayLinkContext context) {
|
||||
return context.sourceConfig()
|
||||
.getInt("Mode") != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "fuel_level";
|
||||
}
|
||||
|
||||
@Override
|
||||
@Environment(EnvType.CLIENT)
|
||||
public void initConfigurationWidgets(DisplayLinkContext context, ModularGuiLineBuilder builder, boolean isFirstLine) {
|
||||
super.initConfigurationWidgets(context, builder, isFirstLine);
|
||||
if (isFirstLine)
|
||||
return;
|
||||
builder.addSelectionScrollInput(0, 120,
|
||||
(si, l) -> si.forOptions(Lang.translatedOptions("display_source.fuel_level", "percent", "progress_bar"))
|
||||
.titled(Lang.translateDirect("display_source.fuel_level.display")),
|
||||
"Mode");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage;
|
||||
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.source.NumericSingleLineDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
|
||||
import com.swdteam.tardim.common.init.TRDDimensions;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import com.swdteam.tardim.tileentity.TileEntityFuelStorage;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class RequiredFuelDisplaySource extends NumericSingleLineDisplaySource {
|
||||
@Override
|
||||
protected MutableComponent provideLine(DisplayLinkContext displayLinkContext, DisplayTargetStats displayTargetStats) {
|
||||
if (displayLinkContext.level() != displayLinkContext.level().getServer().getLevel(TRDDimensions.TARDIS))
|
||||
return null;
|
||||
BlockEntity te = displayLinkContext.getSourceTE();
|
||||
if (!(te instanceof TileEntityFuelStorage fuelStorage))
|
||||
return null;
|
||||
TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos());
|
||||
|
||||
if (data.getTravelLocation() == null) return ZERO.copy();
|
||||
|
||||
TardimData.Location curr = data.getCurrentLocation();
|
||||
TardimData.Location dest = data.getTravelLocation();
|
||||
|
||||
double fuel = 0.0;
|
||||
|
||||
if (curr.getLevel() != dest.getLevel())
|
||||
{
|
||||
fuel = 10.0;
|
||||
}
|
||||
|
||||
Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ());
|
||||
Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ());
|
||||
fuel += posA.distanceTo(posB) / 100.0;
|
||||
if (fuel > 100.0) fuel = 100.0;
|
||||
|
||||
return Components.literal(String.valueOf(fuel));
|
||||
}
|
||||
|
||||
protected String getTranslationKey() {
|
||||
return "required_fuel";
|
||||
}
|
||||
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -2,7 +2,10 @@ package su.a71.tardim_ic.tardim_ic.mixin;
|
|||
|
||||
import com.swdteam.tardim.common.command.tardim.CommandLocate;
|
||||
import com.swdteam.tardim.common.command.tardim.CommandTardimBase;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -14,16 +17,19 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
|||
import su.a71.tardim_ic.tardim_ic.registration.CommandInit;
|
||||
|
||||
import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse;
|
||||
import static su.a71.tardim_ic.tardim_ic.Constants.LOG;
|
||||
import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER;
|
||||
|
||||
@Mixin(value = CommandLocate.class, remap = false)
|
||||
public class JammerMixin {
|
||||
@Inject(method="execute([Ljava/lang/String;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/core/BlockPos;Lcom/swdteam/tardim/common/command/tardim/CommandTardimBase/CommandSource;)V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData/Location)V"), locals = LocalCapture.CAPTURE_FAILHARD)
|
||||
private static void init(CallbackInfo ci, Player player, Player otherPlayer, CommandTardimBase.CommandSource source) {
|
||||
for (ItemStack armour : player.getArmorSlots()) {
|
||||
if (armour.is(LOCATION_JAMMER)) {
|
||||
sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source);
|
||||
};
|
||||
}
|
||||
@Inject(method="execute()V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V"))
|
||||
public void execute(CallbackInfo ci) {
|
||||
LOG.info("test");
|
||||
// for (ItemStack armour : player.getArmorSlots()) {
|
||||
// if (armour.is(LOCATION_JAMMER)) {
|
||||
// sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source);
|
||||
// ci.cancel();
|
||||
// };
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package su.a71.tardim_ic.tardim_ic.registration;
|
||||
|
||||
import com.simibubi.create.content.logistics.block.display.AllDisplayBehaviours;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import su.a71.tardim_ic.tardim_ic.Constants;
|
||||
import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.FuelLevelDisplaySource;
|
||||
import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.RequiredFuelDisplaySource;
|
||||
|
||||
import static com.swdteam.tardim.common.init.TRDTiles.TILE_FUEL_STORAGE;
|
||||
|
||||
public class CreateCompat {
|
||||
|
||||
public static void register() {
|
||||
Constants.LOG.info("Loaded Create compatibility!");
|
||||
// Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE);
|
||||
// Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB)));
|
||||
|
||||
AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_storage_display_source"), new FuelLevelDisplaySource()), TILE_FUEL_STORAGE);
|
||||
AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_required_display_source"), new RequiredFuelDisplaySource()), TILE_FUEL_STORAGE);
|
||||
}
|
||||
}
|
|
@ -22,7 +22,6 @@
|
|||
]
|
||||
},
|
||||
"mixins": [
|
||||
"mixins.tardim_ic.json"
|
||||
],
|
||||
|
||||
"depends": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue