How many seconds in eternity?

This commit is contained in:
Andrew-71 2023-06-11 13:57:33 +03:00
parent 7107936a61
commit ed5f002edc
15 changed files with 304 additions and 34 deletions

View file

@ -4,5 +4,6 @@
"block.tardim_ic.tardim_dock": "TARDIM Dock",
"itemGroup.tardim_ic": "TARDIM: In Control",
"itemGroup.minecraft.tardim_ic": "TARDIM: In Control",
"subtitles.tardim_ic.cloister": "Cloister bell rings"
"subtitles.tardim_ic.cloister": "Cloister bell rings",
"display_source.fuel_level": "TARDIM fuel level"
}

View file

@ -1,8 +1,9 @@
{
"block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface",
"block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input",
"block.tardim_ic.tardim_dock": "TARDIM Dock",
"block.tardim_ic.digital_tardim_interface": "Digital TARDIM interface",
"block.tardim_ic.redstone_tardim_input": "Redstone TARDIM input",
"block.tardim_ic.tardim_dock": "TARDIM dock",
"itemGroup.tardim_ic": "TARDIM: In Control",
"itemGroup.minecraft.tardim_ic": "TARDIM: In Control",
"subtitles.tardim_ic.cloister": "Cloister bell rings"
"subtitles.tardim_ic.cloister": "Cloister bell rings",
"display_source.fuel_level": "TARDIM fuel level"
}

View file

@ -4,5 +4,6 @@
"block.tardim_ic.tardim_dock": "Стыковочная станция для TARDIM",
"itemGroup.tardim_ic": "TARDIM: In Control",
"itemGroup.minecraft.tardim_ic": "TARDIM: In Control",
"subtitles.tardim_ic.cloister": "Звон монастырского колокола"
"subtitles.tardim_ic.cloister": "Звон монастырского колокола",
"display_source.fuel_level": "Уровень топлива в TARDIM"
}

View file

@ -0,0 +1,104 @@
{
"credit": "Made by karoter2 (Feulim)",
"texture_size": [128, 128],
"textures": {
"0": "tardim_ic:blocks/food_machine",
"particle": "tardim_ic:blocks/food_machine"
},
"elements": [
{
"from": [0, 0, 1],
"to": [16, 10, 16],
"faces": {
"north": {"uv": [1.875, 1.875, 3.875, 3.125], "texture": "#0"},
"east": {"uv": [0, 1.875, 1.875, 3.125], "texture": "#0"},
"south": {"uv": [5.75, 1.875, 7.75, 3.125], "texture": "#0"},
"west": {"uv": [3.875, 1.875, 5.75, 3.125], "texture": "#0"},
"up": {"uv": [3.875, 1.875, 1.875, 0], "texture": "#0"},
"down": {"uv": [5.875, 0, 3.875, 1.875], "texture": "#0"}
}
},
{
"from": [0.5, 1, 16.02],
"to": [15.5, 15, 16.02],
"faces": {
"north": {"uv": [8.25, 1.625, 10.125, 3.375], "texture": "#0"},
"east": {"uv": [8.25, 1.625, 8.25, 3.375], "texture": "#0"},
"south": {"uv": [10.125, 1.625, 12, 3.375], "texture": "#0"},
"west": {"uv": [10.125, 1.625, 10.125, 3.375], "texture": "#0"},
"up": {"uv": [10.125, 1.625, 8.25, 1.625], "texture": "#0"},
"down": {"uv": [12, 1.625, 10.125, 1.625], "texture": "#0"}
}
},
{
"from": [0, 10, 0],
"to": [16, 12, 16],
"faces": {
"north": {"uv": [2, 5.125, 4, 5.375], "texture": "#0"},
"east": {"uv": [0, 5.125, 2, 5.375], "texture": "#0"},
"south": {"uv": [6, 5.125, 8, 5.375], "texture": "#0"},
"west": {"uv": [4, 5.125, 6, 5.375], "texture": "#0"},
"up": {"uv": [4, 5.125, 2, 3.125], "texture": "#0"},
"down": {"uv": [6, 3.125, 4, 5.125], "texture": "#0"}
}
},
{
"from": [0, 12, 9],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0.875, 6.25, 2.875, 6.75], "texture": "#0"},
"east": {"uv": [0, 6.25, 0.875, 6.75], "texture": "#0"},
"south": {"uv": [3.75, 6.25, 5.75, 6.75], "texture": "#0"},
"west": {"uv": [2.875, 6.25, 3.75, 6.75], "texture": "#0"},
"up": {"uv": [2.875, 6.25, 0.875, 5.375], "texture": "#0"},
"down": {"uv": [4.875, 5.375, 2.875, 6.25], "texture": "#0"}
}
},
{
"from": [5, 11, 4],
"to": [11, 14, 10],
"rotation": {"angle": -22.5, "axis": "x", "origin": [9, 12, 8]},
"faces": {
"north": {"uv": [6.5, 6.125, 7.25, 6.5], "texture": "#0"},
"east": {"uv": [5.75, 6.125, 6.5, 6.5], "texture": "#0"},
"south": {"uv": [8, 6.125, 8.75, 6.5], "texture": "#0"},
"west": {"uv": [7.25, 6.125, 8, 6.5], "texture": "#0"},
"up": {"uv": [7.25, 6.125, 6.5, 5.375], "texture": "#0"},
"down": {"uv": [8, 5.375, 7.25, 6.125], "texture": "#0"}
}
},
{
"from": [1, 12, 3],
"to": [4, 13, 6],
"faces": {
"north": {"uv": [0.375, 0.875, 0.75, 1], "texture": "#0"},
"east": {"uv": [0, 0.875, 0.375, 1], "texture": "#0"},
"south": {"uv": [1.125, 0.875, 1.5, 1], "texture": "#0"},
"west": {"uv": [0.75, 0.875, 1.125, 1], "texture": "#0"},
"up": {"uv": [0.75, 0.875, 0.375, 0.5], "texture": "#0"},
"down": {"uv": [1.125, 0.5, 0.75, 0.875], "texture": "#0"}
}
},
{
"from": [12, 12, 3],
"to": [15, 13, 6],
"faces": {
"north": {"uv": [0.375, 0.375, 0.75, 0.5], "texture": "#0"},
"east": {"uv": [0, 0.375, 0.375, 0.5], "texture": "#0"},
"south": {"uv": [1.125, 0.375, 1.5, 0.5], "texture": "#0"},
"west": {"uv": [0.75, 0.375, 1.125, 0.5], "texture": "#0"},
"up": {"uv": [0.75, 0.375, 0.375, 0], "texture": "#0"},
"down": {"uv": [1.125, 0, 0.75, 0.375], "texture": "#0"}
}
}
],
"groups": [
{
"name": "group",
"origin": [8, 8, 8],
"color": 0,
"nbt": "{}",
"children": [0, 1, 2, 3, 4, 5, 6]
}
]
}

View file

@ -0,0 +1,23 @@
{
"parent": "tardim_ic:block/food_machine",
"display": {
"thirdperson_righthand": {
"rotation": [ 75, 45, 0 ],
"scale": [ 0.40, 0.40, 0.40 ],
"translation": [ 0, 1, 0 ]
},
"thirdperson_lefthand": {
"rotation": [ 75, 45, 0 ],
"scale": [ 0.40, 0.40, 0.40 ],
"translation": [ 0, 1, 0 ]
},
"firstperson_lefthand": {
"rotation": [ 0, 45, 0 ],
"scale": [ 0.40, 0.40, 0.40 ]
},
"firstperson_righthand": {
"rotation": [ 0, 45, 0 ],
"scale": [ 0.40, 0.40, 0.40 ]
}
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "tardim_ic:item/location_jammer"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -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 {

View file

@ -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);

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();
// };
// }
}
}

View file

@ -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);
}
}

View file

@ -22,7 +22,6 @@
]
},
"mixins": [
"mixins.tardim_ic.json"
],
"depends": {

View file

@ -2,3 +2,8 @@
1. A few log messages definitely left from testing (e.g. aklfjsjsfw)
2. isValidFlightPath is private on Fabric
3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS
4. [FIXED] Adding custom commands was private for literally 0 reason
5. com.swdteam.tardim.common.data.DimensionMapReloadListener has modid tutorial in
public ResourceLocation getFabricId() {
return new ResourceLocation("tutorial", "tardim_dimension_lookup");
}