Create new branch with working NeoForged mod
|
@ -1,39 +0,0 @@
|
|||
plugins {
|
||||
id 'idea'
|
||||
id 'java'
|
||||
id 'maven-publish'
|
||||
id 'org.spongepowered.gradle.vanilla'
|
||||
}
|
||||
base {
|
||||
archivesName = "${mod_name}-common-${minecraft_version}"
|
||||
}
|
||||
minecraft {
|
||||
version(minecraft_version)
|
||||
if(file("src/main/resources/${mod_id}.accesswidener").exists()){
|
||||
accessWideners(file("src/main/resources/${mod_id}.accesswidener"))
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5'
|
||||
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
|
||||
|
||||
// ComputerCraft
|
||||
compileOnly("cc.tweaked:cc-tweaked-$minecraft_version-common-api:$cc_version")
|
||||
|
||||
compileOnly(files("./tardim-1.2.2-dev.jar"))
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
artifactId base.archivesName.get()
|
||||
from components.java
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
url "file://" + System.getenv("local_maven")
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
package su.a71.tardim_ic;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class Constants {
|
||||
|
||||
public static final String MOD_ID = "tardim_ic";
|
||||
public static final String MOD_NAME = "TARDIM: In Control";
|
||||
public static final Logger LOG = LoggerFactory.getLogger(MOD_NAME);
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
package su.a71.tardim_ic.command;
|
||||
|
||||
import com.swdteam.tardim.common.command.tardim.CommandTardimBase;
|
||||
import com.swdteam.tardim.common.command.tardim.ICommand;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.inventory.FurnaceFuelSlot;
|
||||
import net.minecraft.world.level.biome.Biome;
|
||||
import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.FurnaceBlockEntity;
|
||||
|
||||
|
||||
/*
|
||||
This command prints list of all biomes into the console to find technical names
|
||||
You can also pass an argument to search for entries with this string (e.g. amethyst for terralith:amethyst_rainforest
|
||||
*/
|
||||
public class CommandListBiomes implements ICommand{
|
||||
@Override
|
||||
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||
;
|
||||
if (args.length == 1 || args.length == 0) {
|
||||
TardimData data = TardimManager.getFromPos(pos);
|
||||
if (data != null) {
|
||||
if (data.hasPermission(player)) {
|
||||
Registry<Biome> biomeRegistry = player.level().registryAccess().registryOrThrow(Registries.BIOME);
|
||||
biomeRegistry.keySet().forEach(
|
||||
(ResourceLocation res) -> {
|
||||
String out = res.toString();
|
||||
if (args.length == 0 || out.toLowerCase().contains(args[0].toLowerCase())) {
|
||||
CommandTardimBase.sendResponse(player, out, CommandTardimBase.ResponseType.INFO, source);
|
||||
}
|
||||
}
|
||||
);
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "list-biomes";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return "/list-biomes <..search_query>"; // TODO: how to communicate this better
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandTardimBase.CommandSource allowedSource() {
|
||||
return CommandTardimBase.CommandSource.BOTH;
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package su.a71.tardim_ic.command;
|
||||
|
||||
import com.swdteam.tardim.common.command.tardim.CommandTardimBase;
|
||||
import com.swdteam.tardim.common.command.tardim.ICommand;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
||||
/*
|
||||
This command prints list of all dimensions into the console to find technical names
|
||||
*/
|
||||
public class CommandListDimensions implements ICommand{
|
||||
@Override
|
||||
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||
if (args.length == 0) {
|
||||
TardimData data = TardimManager.getFromPos(pos);
|
||||
if (data != null) {
|
||||
if (data.hasPermission(player)) {
|
||||
for (ServerLevel serverLevel : player.level().getServer().getAllLevels()) {
|
||||
CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source);
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "list-dimensions";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return "/list-dimensions";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandTardimBase.CommandSource allowedSource() {
|
||||
return CommandTardimBase.CommandSource.BOTH;
|
||||
}
|
||||
}
|
|
@ -1,74 +0,0 @@
|
|||
package su.a71.tardim_ic.command;
|
||||
|
||||
// This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public
|
||||
// 13.04.23 ITS ALIVE
|
||||
|
||||
import com.swdteam.tardim.common.command.tardim.CommandTardimBase;
|
||||
import com.swdteam.tardim.common.command.tardim.ICommand;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
|
||||
import dan200.computercraft.api.ComputerCraftAPI;
|
||||
import dan200.computercraft.api.network.Packet;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
||||
/*
|
||||
This command sends out a ComputerCraft modem signal
|
||||
This could be useful for connecting advanced navigation systems into "vanilla" controls
|
||||
You can specify both channels, message and even make the message go across dimensions
|
||||
*/
|
||||
public class CommandModemTransmit implements ICommand {
|
||||
@Override
|
||||
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||
if (args.length == 3) { // TODO: 3 or 4???
|
||||
TardimData data = TardimManager.getFromPos(pos);
|
||||
if (data != null) {
|
||||
if (data.hasPermission(player)) {
|
||||
try {
|
||||
int sendChannel = Integer.parseInt(args[0]);
|
||||
int replyChannel = Integer.parseInt(args[1]);
|
||||
String message = args[2];
|
||||
boolean allDimensions = Boolean.parseBoolean(args[3]) || args[3].equals("true");
|
||||
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new TardimData.Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
if (allDimensions)
|
||||
{
|
||||
ComputerCraftAPI.getWirelessNetwork(player.getServer()).transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos())));
|
||||
}
|
||||
else {
|
||||
ComputerCraftAPI.getWirelessNetwork(player.getServer()).transmitSameDimension(new Packet(sendChannel, replyChannel, message,
|
||||
new CommandSender(player, data.getTravelLocation().getPos())), 300);
|
||||
}
|
||||
CommandTardimBase.sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source);
|
||||
} catch (Exception var9) {
|
||||
CommandTardimBase.sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "cc-modem-transmit";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return "/cc-modem-transmit <Chnl> <replyChnl> <msg> <ender: bool>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandTardimBase.CommandSource allowedSource() {
|
||||
return CommandTardimBase.CommandSource.BOTH;
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package su.a71.tardim_ic.command;
|
||||
|
||||
import dan200.computercraft.api.network.PacketSender;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CommandSender implements PacketSender {
|
||||
|
||||
private final Player player;
|
||||
private final Level level;
|
||||
private final BlockPos pos;
|
||||
|
||||
CommandSender(Player player, BlockPos pos) {
|
||||
this.player = player;
|
||||
this.level = player.level();
|
||||
this.pos = pos;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Level getLevel() {
|
||||
return this.level;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Vec3 getPosition() {
|
||||
return new Vec3(this.pos.getX(), this.pos.getY(), this.pos.getZ());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getSenderID() {
|
||||
return this.player.getName().getString();
|
||||
}
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.entity;
|
||||
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
public class FakeTardimPeripheralTileEntity implements ITardimPeripheralTileEntity {
|
||||
public BlockPos blockPos;
|
||||
public Level level;
|
||||
public TardimData data; // Our TARDIM
|
||||
|
||||
public FakeTardimPeripheralTileEntity(BlockPos in_block, Level in_level) {
|
||||
this.blockPos = in_block;
|
||||
this.level = in_level;
|
||||
this.data = getTardimDataInitial();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getPos() {
|
||||
return this.blockPos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Level getLevel() {
|
||||
return this.level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TardimData getTardim() {
|
||||
return this.data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getBlock() {
|
||||
return this.level.getBlockState(this.blockPos).getBlock();
|
||||
}
|
||||
|
||||
public TardimData getTardimDataInitial() {
|
||||
int X = this.getPos().getX(), Z = this.getPos().getZ();
|
||||
|
||||
int index = 0;
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int dx = 0;
|
||||
int dy = 1;
|
||||
int segment_length = 1;
|
||||
int segment_passed = 0;
|
||||
boolean found = false;
|
||||
long timecheck = System.currentTimeMillis();
|
||||
|
||||
while(true) {
|
||||
if (System.currentTimeMillis() - timecheck > 10000L) {
|
||||
System.out.println("Finding ID from XZ Coordinates is taking too long!");
|
||||
break;
|
||||
}
|
||||
|
||||
if (X >= x * TardimManager.INTERIOR_BOUNDS
|
||||
&& X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS
|
||||
&& Z >= y * TardimManager.INTERIOR_BOUNDS
|
||||
&& Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
||||
x += dx;
|
||||
y += dy;
|
||||
if (++segment_passed == segment_length) {
|
||||
segment_passed = 0;
|
||||
int buffer = dy;
|
||||
dy = -dx;
|
||||
dx = buffer;
|
||||
if (buffer == 0) {
|
||||
++segment_length;
|
||||
}
|
||||
}
|
||||
|
||||
++index;
|
||||
}
|
||||
|
||||
// We really don't want to access a ghost TARDIM, do we?
|
||||
// If we fail checks here are not inside a TARDIM
|
||||
if (!found) {
|
||||
return null;
|
||||
}
|
||||
TardimData T = TardimManager.getTardim(index);
|
||||
if (T.getCurrentLocation() == null || T.getOwnerName() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return T;
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.entity;
|
||||
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
|
||||
// This is used to getPost(), getLevel() and getTardim() nicely without refactoring code to account for PeripheralProvider
|
||||
// At least I believe so. Otherwise, don't really remember why I don't just pass these methods to the peripherals.
|
||||
public interface ITardimPeripheralTileEntity {
|
||||
public BlockPos getPos();
|
||||
public Level getLevel();
|
||||
|
||||
public TardimData getTardim();
|
||||
|
||||
public Block getBlock();
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.peripherals;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockFuelStorage;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import dan200.computercraft.api.lua.LuaFunction;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity;
|
||||
|
||||
|
||||
/*
|
||||
* CC Peripheral for TARDIM's fuel storage block.
|
||||
* Only provides getters for the fuel parts for people who cannot afford or don't need the digital interface.
|
||||
*/
|
||||
public class FuelStoragePeripheral extends TardimPeripheral<BlockFuelStorage> implements IPeripheral {
|
||||
/**
|
||||
* @param tileEntity the tile entity of this peripheral
|
||||
* @hidden
|
||||
*/
|
||||
public FuelStoragePeripheral(FakeTardimPeripheralTileEntity tileEntity) {
|
||||
super(tileEntity, "tardim_fuel_storage", (BlockFuelStorage) tileEntity.getBlock());
|
||||
}
|
||||
|
||||
|
||||
// Peripheral methods ===============================================================
|
||||
|
||||
/**
|
||||
* Return how much fuel is left in the TARDIM
|
||||
*
|
||||
* @return Fuel left (Out of 100)
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final double getFuel() throws LuaException {
|
||||
return getTardimData().getFuel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get how much fuel it would take to travel to the destination
|
||||
* @return Amount of fuel needed (Out of 100)
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final double calculateFuelForJourney() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
|
||||
if (data.getTravelLocation() == null) return 0;
|
||||
|
||||
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 fuel;
|
||||
}
|
||||
}
|
|
@ -1,86 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.peripherals;
|
||||
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import su.a71.tardim_ic.computercraft_compat.entity.ITardimPeripheralTileEntity;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
|
||||
// Base CC peripheral for whn you need something with access to a TARDIM
|
||||
public abstract class TardimPeripheral<BL extends Block> implements IPeripheral {
|
||||
|
||||
private final List<IComputerAccess> connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral
|
||||
public final ITardimPeripheralTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates
|
||||
public final String name;
|
||||
private final BL block;
|
||||
|
||||
/**
|
||||
* @param tileEntity the tile entity of this peripheral
|
||||
* @hidden
|
||||
*/
|
||||
public TardimPeripheral(ITardimPeripheralTileEntity tileEntity, String name, BL block) {
|
||||
this.tileEntity = tileEntity;
|
||||
this.name = name;
|
||||
this.block = block;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BL getTarget() {
|
||||
return this.block;
|
||||
}
|
||||
|
||||
/** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n"
|
||||
* @hidden
|
||||
*/
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getType() { return this.name; }
|
||||
|
||||
/** Apparently CC uses this to check if the peripheral in front of a modem is this one
|
||||
* @hidden
|
||||
* @param iPeripheral The peripheral to compare against. This may be {@code null}.
|
||||
* @return {@code true} if the peripheral is the same as this one.
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; }
|
||||
|
||||
/** Called when a computer disconnects from the peripheral
|
||||
* @hidden
|
||||
* @param computer The interface to the computer that is being detached. Remember that multiple computers can be
|
||||
* attached to a peripheral at once.
|
||||
*/
|
||||
@Override
|
||||
public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); }
|
||||
|
||||
/** Called when a computer connects to the peripheral
|
||||
* @hidden
|
||||
* @param computer The interface to the computer that is being attached. Remember that multiple computers can be
|
||||
* attached to a peripheral at once.
|
||||
*/
|
||||
@Override
|
||||
public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); }
|
||||
|
||||
/**
|
||||
* I *think* I use this to get peripheral's world position
|
||||
* @hidden
|
||||
* @return
|
||||
*/
|
||||
public ITardimPeripheralTileEntity getTileEntity() {
|
||||
return tileEntity;
|
||||
}
|
||||
|
||||
|
||||
public TardimData getTardimData() throws LuaException {
|
||||
TardimData data = this.getTileEntity().getTardim();
|
||||
if (data == null || data.getCurrentLocation() == null || data.getOwnerName() == null) {
|
||||
throw new LuaException("Peripheral is not inside a TARDIM");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
|
@ -1,144 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.peripherals;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockTardimScanner;
|
||||
import com.swdteam.tardim.common.init.TardimRegistry;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import dan200.computercraft.api.lua.LuaFunction;
|
||||
import dan200.computercraft.api.lua.ObjectLuaTable;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.players.PlayerList;
|
||||
import net.minecraft.world.level.biome.Biome;
|
||||
import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/*
|
||||
* CC Peripheral for TARDIM's scanner block.
|
||||
* Only provides getters for data-related (mostly table output) methods e.g. biome or companion list
|
||||
* for people who cannot afford or don't need the digital interface.
|
||||
*/
|
||||
public class TardimScannerPeripheral extends TardimPeripheral<BlockTardimScanner> implements IPeripheral {
|
||||
/**
|
||||
* @param tileEntity the tile entity of this peripheral
|
||||
* @hidden
|
||||
*/
|
||||
public TardimScannerPeripheral(FakeTardimPeripheralTileEntity tileEntity) {
|
||||
super(tileEntity, "tardim_scanner", (BlockTardimScanner) tileEntity.getBlock());
|
||||
}
|
||||
|
||||
|
||||
// Peripheral methods ===============================================================
|
||||
|
||||
/**
|
||||
* Get username of the TARDIM's owner
|
||||
* @return String of the owner's username
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final String getOwnerName() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
return data.getOwnerName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of the TARDIM owner's companions
|
||||
* @return ObjectLuaTable containing the usernames of the companions
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getCompanions() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
Map<Integer, String> companions = new HashMap<>();
|
||||
for (int i = 0; i < data.getCompanions().size(); i++) {
|
||||
companions.put(i + 1, data.getCompanions().get(i).getUsername());
|
||||
}
|
||||
return new ObjectLuaTable(companions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get online players. Useful for making a GUI for the locate function or just a nice dashboard.
|
||||
*
|
||||
* @return ObjectLuaTable of the online players
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getOnlinePlayers() throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList();
|
||||
Map<Integer, String> players = new HashMap<>();
|
||||
for (int i = 0; i < playerList.getPlayers().size(); i++) {
|
||||
players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName());
|
||||
}
|
||||
|
||||
return new ObjectLuaTable(players);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all available TARDIM skins. Useful for making a GUI skin selection.
|
||||
*
|
||||
* @return ObjectLuaTable of the available skins
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getSkins() throws LuaException {
|
||||
if (this.getTileEntity().getLevel().isClientSide()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Map<Integer, String> skins = new HashMap<>();
|
||||
|
||||
Iterator var5 = TardimRegistry.getRegistry().keySet().iterator();
|
||||
int i = 0;
|
||||
while(var5.hasNext()) {
|
||||
ResourceLocation builder = (ResourceLocation)var5.next();
|
||||
TardimRegistry.TardimBuilder b = TardimRegistry.getTardimBuilder(builder);
|
||||
skins.put(i + 1, b.getDisplayName());
|
||||
i++;
|
||||
}
|
||||
|
||||
return new ObjectLuaTable(skins);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a table with all registered biomes' names.
|
||||
* Useful for creating advanced navigation systems.
|
||||
* @return ObjectLuaTable with all biomes' technical names
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getBiomes() throws LuaException {
|
||||
Map<Integer, String> biomes = new HashMap<>();
|
||||
Registry<Biome> biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registries.BIOME);
|
||||
Iterator<ResourceLocation> biome_it = biomeRegistry.keySet().iterator();
|
||||
int i = 0;
|
||||
while (biome_it.hasNext()) {
|
||||
biomes.put(i + 1, biome_it.next().toString());
|
||||
i++;
|
||||
}
|
||||
|
||||
return new ObjectLuaTable(biomes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a table with all registered dimensions' names.
|
||||
* Useful for creating advanced navigation systems.
|
||||
* @return ObjectLuaTable with all dimensions' technical names
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getDimensions() throws LuaException {
|
||||
Iterator<ServerLevel> dim_it = this.getTileEntity().getLevel().getServer().getAllLevels().iterator(); // TODO: Does this really work?
|
||||
Map<Integer, String> dimensions = new HashMap<>();
|
||||
int i = 0;
|
||||
while (dim_it.hasNext()) {
|
||||
dimensions.put(i + 1, dim_it.next().dimension().location().toString());
|
||||
i++;
|
||||
}
|
||||
return new ObjectLuaTable(dimensions);
|
||||
}
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.peripherals;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockRotor;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import dan200.computercraft.api.lua.LuaFunction;
|
||||
import dan200.computercraft.api.lua.ObjectLuaTable;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* CC Peripheral for TARDIM's time rotor block.
|
||||
* Only provides getters for the flight status for people who cannot afford or don't need the digital interface.
|
||||
*/
|
||||
public class TimeRotorPeripheral extends TardimPeripheral<BlockRotor> implements IPeripheral {
|
||||
/**
|
||||
* @param tileEntity the tile entity of this peripheral
|
||||
* @hidden
|
||||
*/
|
||||
public TimeRotorPeripheral(FakeTardimPeripheralTileEntity tileEntity) {
|
||||
super(tileEntity, "tardim_rotor", (BlockRotor) tileEntity.getBlock());
|
||||
}
|
||||
|
||||
|
||||
// Peripheral methods ===============================================================
|
||||
|
||||
/**
|
||||
* Check whether the TARDIM is in flight
|
||||
* @return true if in flight, false if not
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); }
|
||||
|
||||
/**
|
||||
* Supposedly gets UNIX timestamp of when we entered flight
|
||||
* @return UNIX timestamp if in flight, -1 if not
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final long getTimeEnteredFlight() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (!data.isInFlight()) {
|
||||
return -1;
|
||||
}
|
||||
return data.getTimeEnteredFlight();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current location of the TARDIM
|
||||
* @return ObjectLuaTable of the current location with the following keys:
|
||||
* <ul>
|
||||
* <li>dimension - String of the dimension</li>
|
||||
* <li>pos - table with the keys x, y, z that hold numbers</li>
|
||||
* <li>facing - String of the facing</li>
|
||||
* </ul>
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getCurrentLocation() throws LuaException {
|
||||
TardimData.Location loc = getTardimData().getCurrentLocation();
|
||||
return new ObjectLuaTable(Map.of(
|
||||
"dimension", loc.getLevel().location().toString(),
|
||||
"pos", new ObjectLuaTable(Map.of(
|
||||
"x", loc.getPos().getX(),
|
||||
"y", loc.getPos().getY(),
|
||||
"z", loc.getPos().getZ()
|
||||
)),
|
||||
"facing", loc.getFacing().toString()
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current location of the TARDIM
|
||||
* @return if there is no destination returns null.
|
||||
* <p>
|
||||
* Otherwise, ObjectLuaTable of the current location with the following keys:
|
||||
* <ul>
|
||||
* <li>dimension - String of the dimension</li>
|
||||
* <li>pos - table with the keys x, y, z that hold numbers</li>
|
||||
* <li>facing - String of the facing</li>
|
||||
* </ul>
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getTravelLocation() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(data.getCurrentLocation());
|
||||
}
|
||||
TardimData.Location loc = data.getTravelLocation();
|
||||
return new ObjectLuaTable(Map.of(
|
||||
"dimension", loc.getLevel().location().toString(),
|
||||
"pos", new ObjectLuaTable(Map.of(
|
||||
"x", loc.getPos().getX(),
|
||||
"y", loc.getPos().getY(),
|
||||
"z", loc.getPos().getZ()
|
||||
)),
|
||||
"facing", loc.getFacing().toString()
|
||||
));
|
||||
}
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
//package su.a71.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 net.minecraft.core.BlockPos;
|
||||
//import net.minecraft.world.entity.player.Player;
|
||||
//import net.minecraft.world.item.ItemStack;
|
||||
//import org.spongepowered.asm.mixin.Mixin;
|
||||
//import org.spongepowered.asm.mixin.Overwrite;
|
||||
//
|
||||
//import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse;
|
||||
//
|
||||
//@Mixin(value = CommandLocate.class, remap = false)
|
||||
//public class JammerMixin {
|
||||
//// @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();
|
||||
////// };
|
||||
////// }
|
||||
//// }
|
||||
//
|
||||
// @Overwrite
|
||||
// public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||
// if (args.length == 1) {
|
||||
// TardimData data = TardimManager.getFromPos(pos);
|
||||
// if (data != null) {
|
||||
// if (data.hasPermission(player)) {
|
||||
// Player otherPlayer = player.getServer().getPlayerList().getPlayerByName(args[0]);
|
||||
// if (otherPlayer != null) {
|
||||
// for (ItemStack armour : otherPlayer.getArmorSlots()) {
|
||||
//// if (armour.is(PERSONAL_JAMMER)) {
|
||||
//// sendResponse(player, otherPlayer.getGameProfile().getName() + "'s location is jammed", CommandTardimBase.ResponseType.FAIL, source);
|
||||
//// return;
|
||||
//// }
|
||||
// // TODO: Re-add
|
||||
// }
|
||||
// data.setTravelLocation(new TardimData.Location(otherPlayer.blockPosition(), otherPlayer.level().dimension()));
|
||||
// sendResponse(player, "Coords locked on to " + otherPlayer.getGameProfile().getName(), CommandTardimBase.ResponseType.COMPLETE, source);
|
||||
// } else {
|
||||
// sendResponse(player, "Player does not exist", CommandTardimBase.ResponseType.FAIL, source);
|
||||
// }
|
||||
// } else {
|
||||
// sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// sendResponse(player, ((CommandLocate)(Object)this).getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//}
|
|
@ -1,25 +0,0 @@
|
|||
package su.a71.tardim_ic.platform;
|
||||
|
||||
import su.a71.tardim_ic.Constants;
|
||||
import su.a71.tardim_ic.platform.services.IPlatformHelper;
|
||||
|
||||
import java.util.ServiceLoader;
|
||||
|
||||
public class Services {
|
||||
|
||||
// Platform helper that lets us do stuff for Forge/Fabric while being in Common
|
||||
public static final IPlatformHelper PLATFORM = load(IPlatformHelper.class);
|
||||
|
||||
// This code is used to load a service for the current environment. Your implementation of the service must be defined
|
||||
// manually by including a text file in META-INF/services named with the fully qualified class name of the service.
|
||||
// Inside the file you should write the fully qualified class name of the implementation to load for the platform. For
|
||||
// example our file on Forge points to ForgePlatformHelper while Fabric points to FabricPlatformHelper.
|
||||
public static <T> T load(Class<T> clazz) {
|
||||
|
||||
final T loadedService = ServiceLoader.load(clazz)
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new NullPointerException("Failed to load service for " + clazz.getName()));
|
||||
// Constants.LOG.debug("Loaded {} for service {}", loadedService, clazz);
|
||||
return loadedService;
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package su.a71.tardim_ic.platform.services;
|
||||
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.MobCategory;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public interface IPlatformHelper {
|
||||
|
||||
/**
|
||||
* Gets the name of the current platform
|
||||
*
|
||||
* @return The name of the current platform.
|
||||
*/
|
||||
String getPlatformName();
|
||||
|
||||
/**
|
||||
* Checks if a mod with the given id is loaded.
|
||||
*
|
||||
* @param modId The mod to check if it is loaded.
|
||||
* @return True if the mod is loaded, false otherwise.
|
||||
*/
|
||||
boolean isModLoaded(String modId);
|
||||
|
||||
/**
|
||||
* Check if the game is currently in a development environment.
|
||||
*
|
||||
* @return True if in a development environment, false otherwise.
|
||||
*/
|
||||
boolean isDevelopmentEnvironment();
|
||||
|
||||
/**
|
||||
* Gets the name of the environment type as a string.
|
||||
*
|
||||
* @return The name of the environment type.
|
||||
*/
|
||||
default String getEnvironmentName() {
|
||||
|
||||
return isDevelopmentEnvironment() ? "development" : "production";
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
package su.a71.tardim_ic.utils;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* This class is used whenever we need a player for a function but cannot get one
|
||||
* (i.g we are on server side and need to execute TARDIM command)
|
||||
*/
|
||||
public class FakePlayer extends Player {
|
||||
|
||||
public FakePlayer(Level lvl, BlockPos blockPos) {
|
||||
super(lvl, blockPos, 0, new GameProfile(UUID.randomUUID(), "FakePlayer_tardimic"));
|
||||
}
|
||||
|
||||
public FakePlayer(Level lvl, BlockPos blockPos, UUID id) {
|
||||
super(lvl, blockPos, 0, new GameProfile(id, "FakePlayer_tardimic"));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSpectator() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCreative() {
|
||||
return false;
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 437 B |
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "tardim_ic:block/digital_tardim_interface"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "tardim_ic:block/food_machine"},
|
||||
"facing=east": { "model": "tardim_ic:block/food_machine", "y": 90},
|
||||
"facing=south": { "model": "tardim_ic:block/food_machine", "y": 180},
|
||||
"facing=west": { "model": "tardim_ic:block/food_machine", "y": 270}
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "tardim_ic:block/redstone_tardim_input"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "tardim_ic:block/tardim_dock"},
|
||||
"facing=east": { "model": "tardim_ic:block/tardim_dock", "y": 90},
|
||||
"facing=south": { "model": "tardim_ic:block/tardim_dock", "y": 180},
|
||||
"facing=west": { "model": "tardim_ic:block/tardim_dock", "y": 270}
|
||||
}
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,half=lower,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom"
|
||||
},
|
||||
"facing=north,half=lower,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed"
|
||||
},
|
||||
"facing=north,half=upper,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top"
|
||||
},
|
||||
"facing=north,half=upper,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed"
|
||||
},
|
||||
"facing=west,half=lower,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=lower,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,open=false,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,open=false,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=lower,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom"
|
||||
},
|
||||
"facing=north,half=lower,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open"
|
||||
},
|
||||
"facing=north,half=upper,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top"
|
||||
},
|
||||
"facing=north,half=upper,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open"
|
||||
},
|
||||
"facing=west,half=lower,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=lower,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,open=true,front=false": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,open=true,front=true": {
|
||||
"model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open",
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_floor" }
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_roof" }
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 72 KiB |
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"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.food_machine": "TARDIM food machine",
|
||||
"itemGroup.tardim_ic": "TARDIM: In Control",
|
||||
"itemGroup.minecraft.tardim_ic": "TARDIM: In Control",
|
||||
"subtitles.tardim_ic.cloister": "Cloister bell rings",
|
||||
"display_source.fuel_level": "TARDIM fuel level"
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"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.food_machine": "TARDIM food machine",
|
||||
"itemGroup.tardim_ic": "TARDIM: In Control",
|
||||
"itemGroup.minecraft.tardim_ic": "TARDIM: In Control",
|
||||
"subtitles.tardim_ic.cloister": "Cloister bell rings",
|
||||
"display_source.fuel_level": "TARDIM fuel level"
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки",
|
||||
"block.tardim_ic.redstone_tardim_input": "Краснокаменный Инпутъ Хронобудки",
|
||||
"block.tardim_ic.tardim_dock": "Конюшня для TARDIM",
|
||||
"itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ",
|
||||
"itemGroup.minecraft.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ",
|
||||
"subtitles.tardim_ic.cloister": "Звукъ временного колокола"
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"block.tardim_ic.digital_tardim_interface": "Цифровой интерфейс TARDIM",
|
||||
"block.tardim_ic.redstone_tardim_input": "Редстоуновый ввод TARDIM",
|
||||
"block.tardim_ic.tardim_dock": "Стыковочная станция для TARDIM",
|
||||
"block.tardim_ic.food_machine": "Раздатчик еды",
|
||||
"itemGroup.tardim_ic": "TARDIM: In Control",
|
||||
"itemGroup.minecraft.tardim_ic": "TARDIM: In Control",
|
||||
"subtitles.tardim_ic.cloister": "Звон монастырского колокола",
|
||||
"display_source.fuel_level": "Уровень топлива в TARDIM"
|
||||
}
|
|
@ -1,213 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2 (Feulim)",
|
||||
"parent": "digital_tardim_interface",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"1": "tardim_ic:block/digital_tardim_interface",
|
||||
"particle": "tardim_ic:block/digital_tardim_interface"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 4, 8, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [0, 4, 4, 7.5], "texture": "#1"},
|
||||
"south": {"uv": [12, 4, 16, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [8, 4, 12, 7.5], "texture": "#1"},
|
||||
"up": {"uv": [8, 4, 4, 0], "texture": "#1"},
|
||||
"down": {"uv": [12, 0, 8, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 14, 5],
|
||||
"to": [11, 16, 11],
|
||||
"faces": {
|
||||
"north": {"uv": [1.5, 9, 3, 9.5], "texture": "#1"},
|
||||
"east": {"uv": [0, 9, 1.5, 9.5], "texture": "#1"},
|
||||
"south": {"uv": [4.5, 9, 6, 9.5], "texture": "#1"},
|
||||
"west": {"uv": [3, 9, 4.5, 9.5], "texture": "#1"},
|
||||
"up": {"uv": [3, 9, 1.5, 7.5], "texture": "#1"},
|
||||
"down": {"uv": [4.5, 7.5, 3, 9], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 14, 7],
|
||||
"to": [14, 16, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 0.5, 13.25, 1], "texture": "#1"},
|
||||
"east": {"uv": [12, 0.5, 12.5, 1], "texture": "#1"},
|
||||
"south": {"uv": [13.75, 0.5, 14.5, 1], "texture": "#1"},
|
||||
"west": {"uv": [13.25, 0.5, 13.75, 1], "texture": "#1"},
|
||||
"up": {"uv": [13.25, 0.5, 12.5, 0], "texture": "#1"},
|
||||
"down": {"uv": [14, 0, 13.25, 0.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12.5, 14, 3.5],
|
||||
"to": [12.5, 15, 12.5],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"south": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"west": {"uv": [13, 3.75, 15.25, 4], "texture": "#1"},
|
||||
"up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, 14, 12.5],
|
||||
"to": [12.5, 15, 12.5],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"south": {"uv": [12.5, 3.75, 14.75, 4], "texture": "#1"},
|
||||
"west": {"uv": [13.5, 3.75, 15.75, 4], "texture": "#1"},
|
||||
"up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, 14, 3.5],
|
||||
"to": [12.5, 15, 3.5],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"south": {"uv": [12.5, 3.75, 14.75, 4], "texture": "#1"},
|
||||
"west": {"uv": [13.5, 3.75, 15.75, 4], "texture": "#1"},
|
||||
"up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, 14, 3.5],
|
||||
"to": [3.5, 15, 12.5],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"south": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"west": {"uv": [13, 3.75, 15.25, 4], "texture": "#1"},
|
||||
"up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"},
|
||||
"down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 7],
|
||||
"to": [5, 16, 9],
|
||||
"faces": {
|
||||
"north": {"uv": [5, 8, 5.75, 8.5], "texture": "#1"},
|
||||
"east": {"uv": [4.5, 8, 5, 8.5], "texture": "#1"},
|
||||
"south": {"uv": [6.25, 8, 7, 8.5], "texture": "#1"},
|
||||
"west": {"uv": [5.75, 8, 6.25, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [5.75, 8, 5, 7.5], "texture": "#1"},
|
||||
"down": {"uv": [6.5, 7.5, 5.75, 8], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14, 2],
|
||||
"to": [9, 16, 5],
|
||||
"faces": {
|
||||
"north": {"uv": [3.25, 12.5, 3.75, 13], "texture": "#1"},
|
||||
"east": {"uv": [2.5, 12.5, 3.25, 13], "texture": "#1"},
|
||||
"south": {"uv": [4.5, 12.5, 5, 13], "texture": "#1"},
|
||||
"west": {"uv": [3.75, 12.5, 4.5, 13], "texture": "#1"},
|
||||
"up": {"uv": [3.75, 12.5, 3.25, 11.75], "texture": "#1"},
|
||||
"down": {"uv": [4.25, 11.75, 3.75, 12.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14, 11],
|
||||
"to": [9, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0.75, 12.5, 1.25, 13], "texture": "#1"},
|
||||
"east": {"uv": [0, 12.5, 0.75, 13], "texture": "#1"},
|
||||
"south": {"uv": [2, 12.5, 2.5, 13], "texture": "#1"},
|
||||
"west": {"uv": [1.25, 12.5, 2, 13], "texture": "#1"},
|
||||
"up": {"uv": [1.25, 12.5, 0.75, 11.75], "texture": "#1"},
|
||||
"down": {"uv": [1.75, 11.75, 1.25, 12.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 13, -2],
|
||||
"to": [10, 17, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [10, 9.5, 11, 10.5], "texture": "#1"},
|
||||
"east": {"uv": [9, 9.5, 10, 10.5], "texture": "#1"},
|
||||
"south": {"uv": [12, 9.5, 13, 10.5], "texture": "#1"},
|
||||
"west": {"uv": [11, 9.5, 12, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [11, 9.5, 10, 8.5], "texture": "#1"},
|
||||
"down": {"uv": [12, 8.5, 11, 9.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 13, 14],
|
||||
"to": [10, 17, 18],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 8.5, 8, 9.5], "texture": "#1"},
|
||||
"east": {"uv": [6, 8.5, 7, 9.5], "texture": "#1"},
|
||||
"south": {"uv": [9, 8.5, 10, 9.5], "texture": "#1"},
|
||||
"west": {"uv": [8, 8.5, 9, 9.5], "texture": "#1"},
|
||||
"up": {"uv": [8, 8.5, 7, 7.5], "texture": "#1"},
|
||||
"down": {"uv": [9, 7.5, 8, 8.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 13, 6],
|
||||
"to": [2, 17, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 3, 2, 4], "texture": "#1"},
|
||||
"east": {"uv": [0, 3, 1, 4], "texture": "#1"},
|
||||
"south": {"uv": [3, 3, 4, 4], "texture": "#1"},
|
||||
"west": {"uv": [2, 3, 3, 4], "texture": "#1"},
|
||||
"up": {"uv": [2, 3, 1, 2], "texture": "#1"},
|
||||
"down": {"uv": [3, 2, 2, 3], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 13, 6],
|
||||
"to": [18, 17, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 2, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 1, 1, 2], "texture": "#1"},
|
||||
"south": {"uv": [3, 1, 4, 2], "texture": "#1"},
|
||||
"west": {"uv": [2, 1, 3, 2], "texture": "#1"},
|
||||
"up": {"uv": [2, 1, 1, 0], "texture": "#1"},
|
||||
"down": {"uv": [3, 0, 2, 1], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, -1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, -1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [-1.25, 0, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [3.75, -1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -0.5, 0],
|
||||
"scale": [0.35, 0.35, 0.35]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [33, 45, 0],
|
||||
"scale": [0.6, 0.6, 0.6]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 0.75, 0],
|
||||
"scale": [1.1, 1.1, 1.1]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, 4.25]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,104 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2 (Feulim)",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "tardim_ic:block/food_machine",
|
||||
"particle": "tardim_ic:block/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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2 (Feulim)",
|
||||
"parent": "block/cube_all",
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"1": "tardim_ic:block/redstone_input",
|
||||
"2": "tardim_ic:block/redstone_input",
|
||||
"particle": "tardim_ic:block/redstone_input"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-0.325, -0.35, -0.35],
|
||||
"to": [16.35, 16.525, 16.275],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"parent": "tardim_ic:block/redstone_tardim_input",
|
||||
"textures": {
|
||||
"1": "tardim_ic:block/redstone_input_lit",
|
||||
"2": "tardim_ic:block/redstone_input_lit",
|
||||
"particle": "tardim_ic:block/redstone_input_lit"
|
||||
}
|
||||
}
|
|
@ -1,198 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2 (Feulim)",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"1": "tardim_ic:block/tardim_dock",
|
||||
"particle": "tardim_ic:block/tardim_dock"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [2, 0, 2],
|
||||
"to": [14, 12, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 7, 3], "texture": "#1"},
|
||||
"east": {"uv": [4, 3, 7, 6], "texture": "#1"},
|
||||
"south": {"uv": [4, 6, 7, 9], "texture": "#1"},
|
||||
"west": {"uv": [7, 0, 10, 3], "texture": "#1"},
|
||||
"up": {"uv": [10, 6, 7, 3], "texture": "#1"},
|
||||
"down": {"uv": [10, 6, 7, 9], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 12, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 4, 9], "texture": "#1"},
|
||||
"east": {"uv": [0, 9, 4, 10], "texture": "#1"},
|
||||
"south": {"uv": [4, 9, 8, 10], "texture": "#1"},
|
||||
"west": {"uv": [8, 9, 12, 10], "texture": "#1"},
|
||||
"up": {"uv": [4, 4, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [4, 4, 0, 8], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 7, 0],
|
||||
"to": [12, 12, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [10.25, 0, 10, 1.25], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [10, 0, 10.25, 1.25], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 6, 1],
|
||||
"to": [12, 7, 2],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 4, 0],
|
||||
"to": [4, 12, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [1.25, 10, 1, 12], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [1, 10, 1.25, 12], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 3, 1],
|
||||
"to": [4, 4, 2],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [1.5, 12, 1.25, 12.25], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [1.25, 12, 1.5, 12.25], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 7, 15],
|
||||
"to": [4, 12, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [10, 0, 10.25, 1.25], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [10.25, 0, 10, 1.25], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 6, 14],
|
||||
"to": [4, 7, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 4, 15],
|
||||
"to": [12, 12, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [1, 10, 1.25, 12], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [1.25, 10, 1, 12], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 3, 14],
|
||||
"to": [12, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"east": {"uv": [1.25, 12, 1.5, 12.25], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#1"},
|
||||
"west": {"uv": [1.5, 12, 1.25, 12.25], "texture": "#1"},
|
||||
"up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 0, 0.5],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [1.75, -0.25, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [3, 0, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -0.25, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [18, 45, 0],
|
||||
"translation": [0, -0.5, 0],
|
||||
"scale": [0.65, 0.65, 0.65]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, -90, 0],
|
||||
"scale": [1.2, 1.2, 1.2]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"scale": [1.2, 1.2, 1.2]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [
|
||||
0,
|
||||
1,
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [2, 3, 4, 5]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [6, 7, 8, 9]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,279 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim_ic:blocks/tardim_soviet_chronobox"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [13, 0, 0],
|
||||
"to": [15, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 0, 13, 8], "texture": "#0"},
|
||||
"east": {"uv": [12.5, 0, 12.75, 8], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 0, 13, 8], "texture": "#0"},
|
||||
"west": {"uv": [12.75, 0, 13, 8], "texture": "#0"},
|
||||
"up": {"uv": [12.5, 0, 13, 0.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [12.5, 7.75, 13, 8], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 0, 0],
|
||||
"to": [13, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"south": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"west": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 15, 0],
|
||||
"to": [13, 17, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"},
|
||||
"east": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"south": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"},
|
||||
"west": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 17, 0],
|
||||
"to": [13, 30, 0],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 17, -16],
|
||||
"to": [13, 30, -16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 17, -13],
|
||||
"to": [0, 30, -3],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 17, -13],
|
||||
"to": [16, 30, -3],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 18, 0.425],
|
||||
"to": [9, 20, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"east": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"south": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"west": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 19, 0.425],
|
||||
"to": [7, 20, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"east": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"west": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"up": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"down": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 19, 0.425],
|
||||
"to": [10, 20, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"up": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"down": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 20, 0.425],
|
||||
"to": [12, 22, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"east": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"south": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"west": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"up": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"down": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 20, 0.425],
|
||||
"to": [5, 22, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"east": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"south": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"west": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"up": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"down": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 21, 0.425],
|
||||
"to": [6, 22, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"east": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"south": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"west": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"up": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"down": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 22, 0.425],
|
||||
"to": [11, 23, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"east": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"west": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"down": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 23, 0.425],
|
||||
"to": [9, 24, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"east": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"south": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"west": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"up": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"down": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10, 21, 0.425],
|
||||
"to": [11, 22, 0.425],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"east": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"south": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"west": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"up": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"down": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 2, 0],
|
||||
"to": [13, 15, 0],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"east": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"south": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"up": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 30, 0],
|
||||
"to": [13, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"east": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"south": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"west": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 0],
|
||||
"to": [3, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.5, 0, 16, 8], "texture": "#0"},
|
||||
"east": {"uv": [15.5, 0, 15.75, 8], "texture": "#0"},
|
||||
"south": {"uv": [15.5, 0, 16, 8], "texture": "#0"},
|
||||
"west": {"uv": [15.75, 0, 16, 8], "texture": "#0"},
|
||||
"up": {"uv": [15.5, 0, 16, 0.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [15.5, 7.75, 16, 8], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 0.5],
|
||||
"to": [5, 16.5, 1.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"},
|
||||
"east": {"uv": [7, 0.5, 7.25, 0.75], "texture": "#0"},
|
||||
"south": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"},
|
||||
"west": {"uv": [7.25, 0, 7.5, 0.25], "texture": "#0"},
|
||||
"up": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"},
|
||||
"down": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,279 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim_ic:blocks/tardim_soviet_chronobox"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [14, 0, 1],
|
||||
"to": [15, 32, 3],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 0, 12.75, 8], "texture": "#0"},
|
||||
"east": {"uv": [12.5, 0, 13, 8], "texture": "#0"},
|
||||
"south": {"uv": [12.75, 0, 13, 8], "texture": "#0"},
|
||||
"west": {"uv": [12.5, 0, 13, 8], "texture": "#0"},
|
||||
"up": {"uv": [12.5, 0, 13, 0.25], "texture": "#0"},
|
||||
"down": {"uv": [12.5, 7.75, 13, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 3],
|
||||
"to": [15, 2, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"south": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"},
|
||||
"west": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 15, 3],
|
||||
"to": [15, 17, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"},
|
||||
"south": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"},
|
||||
"west": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 17, 3],
|
||||
"to": [14, 30, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"east": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 18, 7],
|
||||
"to": [14.425, 20, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"east": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"south": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"west": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [9.25, 1, 8.75, 1.5], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [9.25, 1, 8.75, 1.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 19, 9],
|
||||
"to": [14.425, 20, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"east": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"west": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"},
|
||||
"up": {"uv": [8.75, 1, 8.5, 1.25], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [8.75, 1, 8.5, 1.25], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 19, 6],
|
||||
"to": [14.425, 20, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"},
|
||||
"up": {"uv": [9.5, 1, 9.25, 1.25], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [9.5, 1, 9.25, 1.25], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 20, 4],
|
||||
"to": [14.425, 22, 5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"east": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"south": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"west": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"},
|
||||
"up": {"uv": [10, 0.5, 9.75, 1], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [10, 0.5, 9.75, 1], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 20, 11],
|
||||
"to": [14.425, 22, 12],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"east": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"south": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"west": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"},
|
||||
"up": {"uv": [8.25, 0.5, 8, 1], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [8.25, 0.5, 8, 1], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 21, 10],
|
||||
"to": [14.425, 22, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"east": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"south": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"west": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"},
|
||||
"up": {"uv": [8.5, 0.5, 8.25, 0.75], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [8.5, 0.5, 8.25, 0.75], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 22, 5],
|
||||
"to": [14.425, 23, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"east": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"west": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [9.75, 0.25, 8.25, 0.5], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [9.75, 0.25, 8.25, 0.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 23, 7],
|
||||
"to": [14.425, 24, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"east": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"south": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"west": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"},
|
||||
"up": {"uv": [9.25, 0, 8.75, 0.25], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [9.25, 0, 8.75, 0.25], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.425, 21, 5],
|
||||
"to": [14.425, 22, 6],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"east": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"south": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"west": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"},
|
||||
"up": {"uv": [9.75, 0.5, 9.5, 0.75], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [9.75, 0.5, 9.5, 0.75], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 3],
|
||||
"to": [14, 15, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"east": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"up": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"down": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 30, 3],
|
||||
"to": [15, 32, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"},
|
||||
"west": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 13],
|
||||
"to": [15, 32, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.5, 0, 15.75, 8], "texture": "#0"},
|
||||
"east": {"uv": [15.5, 0, 16, 8], "texture": "#0"},
|
||||
"south": {"uv": [15.75, 0, 16, 8], "texture": "#0"},
|
||||
"west": {"uv": [15.5, 0, 16, 8], "texture": "#0"},
|
||||
"up": {"uv": [15.5, 0, 16, 0.25], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 7.75, 16, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.5, 15.5, 11],
|
||||
"to": [15.5, 16.5, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [7, 0.5, 7.25, 0.75], "texture": "#0"},
|
||||
"east": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"},
|
||||
"south": {"uv": [7.25, 0, 7.5, 0.25], "texture": "#0"},
|
||||
"west": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"},
|
||||
"up": {"uv": [7.25, 0, 8, 0.25], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [7.25, 0, 8, 0.25], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 17, -13],
|
||||
"to": [16, 30, -3],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 17, -13],
|
||||
"to": [0, 30, -3],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 17, -16],
|
||||
"to": [13, 30, -16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"particle": "tardim:block/tardim_tt"
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,97 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"1": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim:block/tardim_tt"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 0, 0],
|
||||
"to": [3, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 0, 13, 8], "texture": "#1"},
|
||||
"east": {"uv": [12.75, 0, 13, 8], "texture": "#1"},
|
||||
"south": {"uv": [12.5, 0, 13, 8], "texture": "#1"},
|
||||
"west": {"uv": [12.5, 0, 12.75, 8], "texture": "#1"},
|
||||
"up": {"uv": [12.5, 0, 13, 0.25], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [12.5, 7.75, 13, 8], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 0, 0],
|
||||
"to": [13, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 7.5, 15.5, 8], "texture": "#1"},
|
||||
"east": {"uv": [15.75, 7.5, 16, 8], "texture": "#1"},
|
||||
"south": {"uv": [13, 7.5, 15.5, 8], "texture": "#1"},
|
||||
"west": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#1"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 15, 0],
|
||||
"to": [13, 17, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#1"},
|
||||
"east": {"uv": [15.75, 7.5, 16, 8], "texture": "#1"},
|
||||
"south": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#1"},
|
||||
"west": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#1"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 2, 0],
|
||||
"to": [13, 15, 0],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#1"},
|
||||
"east": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#1"},
|
||||
"south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#1"},
|
||||
"west": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#1"},
|
||||
"up": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 30, 0],
|
||||
"to": [13, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 0, 15.5, 0.5], "texture": "#1"},
|
||||
"east": {"uv": [15.75, 7.5, 16, 8], "texture": "#1"},
|
||||
"south": {"uv": [13, 0, 15.5, 0.5], "texture": "#1"},
|
||||
"west": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#1"},
|
||||
"up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 0, 0],
|
||||
"to": [15, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [15.5, 0, 16, 8], "texture": "#1"},
|
||||
"east": {"uv": [15.75, 0, 16, 8], "texture": "#1"},
|
||||
"south": {"uv": [15.5, 0, 16, 8], "texture": "#1"},
|
||||
"west": {"uv": [15.5, 0, 15.75, 8], "texture": "#1"},
|
||||
"up": {"uv": [15.5, 0, 16, 0.25], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [15.5, 7.75, 16, 8], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim_ic:blocks/tardim_soviet_chronobox"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-4, 16, 4.15],
|
||||
"to": [20, 24, 4.15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 6, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 0, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 2, 6, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 0, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 6, 0], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 6, 0], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim_ic:blocks/tardim_soviet_chronobox"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-4, 16, 4.15],
|
||||
"to": [20, 24, 4.15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 6, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 0, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 2, 6, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 0, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 6, 0], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 6, 0], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"1": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim_ic:blocks/tardim_soviet_chronobox"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0.1, 0],
|
||||
"to": [16, 0.1, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.5, 15.75, 5.5, 16], "texture": "#1"},
|
||||
"east": {"uv": [1.75, 15.75, 5.75, 16], "texture": "#1"},
|
||||
"south": {"uv": [1.5, 15.75, 5.5, 16], "texture": "#1"},
|
||||
"west": {"uv": [1.75, 15.75, 5.75, 16], "texture": "#1"},
|
||||
"up": {"uv": [12, 8, 16, 12], "texture": "#1"},
|
||||
"down": {"uv": [12, 8, 16, 12], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 0, -2],
|
||||
"to": [1, 32, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"east": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"south": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"west": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"up": {"uv": [11.25, 8.75, 12, 8], "texture": "#1"},
|
||||
"down": {"uv": [11.25, 16, 12, 15.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 0, 15],
|
||||
"to": [1, 32, 18],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"east": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"south": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"west": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"up": {"uv": [11.25, 8, 12, 8.75], "texture": "#1"},
|
||||
"down": {"uv": [11.25, 15.25, 12, 16], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, -2],
|
||||
"to": [18, 32, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"east": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"south": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"west": {"uv": [12, 16, 11.25, 8], "texture": "#1"},
|
||||
"up": {"uv": [12, 8.75, 11.25, 8], "texture": "#1"},
|
||||
"down": {"uv": [12, 16, 11.25, 15.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 15],
|
||||
"to": [18, 32, 18],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"east": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"south": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"west": {"uv": [11.25, 16, 12, 8], "texture": "#1"},
|
||||
"up": {"uv": [12, 8, 11.25, 8.75], "texture": "#1"},
|
||||
"down": {"uv": [12, 15.25, 11.25, 16], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"credit": "Made by karoter2",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "tardim_ic:blocks/tardim_soviet_chronobox",
|
||||
"particle": "tardim_ic:blocks/tardim_soviet_chronobox"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-4, 0, -4],
|
||||
"to": [20, 8, 20],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 6, 2], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 6, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 6, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 6, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"down": {"uv": [0, 4, 6, 10], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"parent": "tardim_ic:block/digital_tardim_interface",
|
||||
"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 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"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 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "tardim_ic:item/personal_jammer"
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"parent": "tardim_ic:block/redstone_tardim_input",
|
||||
"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 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"parent": "tardim_ic:block/tardim_dock",
|
||||
"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 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"cloister": {
|
||||
"subtitle": "subtitles.tardim_ic.cloister",
|
||||
"sounds": [
|
||||
"tardim_ic:cloister"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 927 B |
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 10,
|
||||
"interpolate": true,
|
||||
"frames": [0, 1, 2, 3]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 923 B |
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 10,
|
||||
"interpolate": true,
|
||||
"frames": [0, 1, 2, 3]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 361 B |
Before Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 382 B |
|
@ -1,5 +0,0 @@
|
|||
--[[
|
||||
This is source code of my personal TARDIM Navigation Dashboard (NavDash)
|
||||
|
||||
It needs a 1x2 (2 tall) monitor and a digital TARDIM interface to be available
|
||||
]
|
|
@ -1,12 +0,0 @@
|
|||
-- This is a very basic test script
|
||||
-- This basically just verifies the mod works
|
||||
|
||||
local int = peripheral.find("digital_tardim_interface")
|
||||
if int == nil then
|
||||
error("No interface found")
|
||||
end
|
||||
|
||||
print(int.getOwnerName() .. "'s TARDIM")
|
||||
print("FUEL: " .. int.getFuel() .. "/100")
|
||||
print("IN FLIGHT? " .. int.isInFlight())
|
||||
print("IS LOCKED? " .. int.isLocked())
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"bonus_rolls": 0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tardim_ic:digital_tardim_interface",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"bonus_rolls": 0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tardim_ic:redstone_tardim_input",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"DDD",
|
||||
"R0R",
|
||||
"GRG"
|
||||
],
|
||||
"key": {
|
||||
"G": {
|
||||
"item": "minecraft:gold_ingot",
|
||||
"count": 1
|
||||
},
|
||||
"R": {
|
||||
"item": "minecraft:redstone",
|
||||
"count": 1
|
||||
},
|
||||
"0": {
|
||||
"item": "minecraft:ender_eye",
|
||||
"count": 1
|
||||
},
|
||||
"D": {
|
||||
"item": "minecraft:polished_deepslate",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "tardim_ic:digital_tardim_interface",
|
||||
"count": 1
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"GRG",
|
||||
"RBR",
|
||||
"GRG"
|
||||
],
|
||||
"key": {
|
||||
"G": {
|
||||
"item": "minecraft:gold_ingot",
|
||||
"count": 1
|
||||
},
|
||||
"R": {
|
||||
"item": "minecraft:redstone",
|
||||
"count": 1
|
||||
},
|
||||
"B": {
|
||||
"item": "minecraft:redstone_block",
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "tardim_ic:redstone_tardim_input",
|
||||
"count": 1
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "${mod_name}",
|
||||
"pack_format": 8
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "su.a71.tardim_ic.mixin",
|
||||
"refmap": "${mod_id}.refmap.json",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"mixins": [
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
plugins {
|
||||
id 'java'
|
||||
id 'idea'
|
||||
id 'maven-publish'
|
||||
id 'fabric-loom'
|
||||
}
|
||||
base {
|
||||
archivesName = "${mod_name}-fabric-${minecraft_version}"
|
||||
}
|
||||
dependencies {
|
||||
minecraft "com.mojang:minecraft:${minecraft_version}"
|
||||
mappings loom.officialMojangMappings()
|
||||
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}"
|
||||
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1'
|
||||
implementation project(":common")
|
||||
|
||||
modImplementation("curse.maven:tardim-531315:4668945")
|
||||
// modCompileOnly("com.simibubi.create:create-fabric-1.20.1:0.5.1-d-build.1118+mc1.20.1")
|
||||
modCompileOnly("cc.tweaked:cc-tweaked-$minecraft_version-fabric-api:$cc_version")
|
||||
}
|
||||
|
||||
loom {
|
||||
if (project(":common").file("src/main/resources/${mod_id}.accesswidener").exists()) {
|
||||
accessWidenerPath.set(project(":common").file("src/main/resources/${mod_id}.accesswidener"))
|
||||
}
|
||||
mixin {
|
||||
defaultRefmapName.set("${mod_id}.refmap.json")
|
||||
}
|
||||
runs {
|
||||
client {
|
||||
client()
|
||||
setConfigName("Fabric Client")
|
||||
ideConfigGenerated(true)
|
||||
runDir("run")
|
||||
}
|
||||
server {
|
||||
server()
|
||||
setConfigName("Fabric Server")
|
||||
ideConfigGenerated(true)
|
||||
runDir("run")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
source(project(":common").sourceSets.main.allSource)
|
||||
}
|
||||
tasks.withType(Javadoc).configureEach {
|
||||
source(project(":common").sourceSets.main.allJava)
|
||||
}
|
||||
tasks.named("sourcesJar", Jar) {
|
||||
from(project(":common").sourceSets.main.allSource)
|
||||
}
|
||||
|
||||
processResources {
|
||||
from project(":common").sourceSets.main.resources
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
artifactId base.archivesName.get()
|
||||
from components.java
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
url "file://" + System.getenv("local_maven")
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
package su.a71.tardim_ic;
|
||||
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
|
||||
public class TardimInControl implements ModInitializer {
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
Registration.register();
|
||||
}
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
package su.a71.tardim_ic.blocks.food_machine;
|
||||
|
||||
import com.swdteam.tardim.common.init.TRDDimensions;
|
||||
import com.swdteam.tardim.common.init.TRDSounds;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class FoodMachineBlock extends HorizontalDirectionalBlock implements EntityBlock {
|
||||
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||
|
||||
public FoodMachineBlock() {
|
||||
super(Properties.of().strength(2, 4).noOcclusion().mapColor(MapColor.METAL)); // No occlusion?
|
||||
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||
}
|
||||
|
||||
public BlockState getStateForPlacement(BlockPlaceContext $$0) {
|
||||
return this.defaultBlockState().setValue(FACING, $$0.getHorizontalDirection().getOpposite());
|
||||
}
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> $$0) {
|
||||
$$0.add(FACING);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) {
|
||||
return Registration.FOOD_MACHINE_BE.create(pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) {
|
||||
if (!w.isClientSide) {
|
||||
w.playSound(null, blockPos, TRDSounds.TARDIM_BEEP, SoundSource.BLOCKS, 0.3F, 0.5F);
|
||||
BlockEntity be = w.getBlockEntity(blockPos);
|
||||
if (be instanceof FoodMachineBlockEntity && w.dimension() == TRDDimensions.TARDIS) {
|
||||
TardimData data = TardimManager.getFromPos(blockPos);
|
||||
if (data != null && data.hasPermission(player)) {
|
||||
if (data.getFuel() >= 0.2) {
|
||||
data.setFuel(data.getFuel() - 0.2); // Remove some fuel in exchange for food
|
||||
ItemEntity food = new ItemEntity(EntityType.ITEM, w);
|
||||
|
||||
// Select type of food here
|
||||
food.setItem(new ItemStack(Items.BREAD, 1));
|
||||
|
||||
food.setPos(Vec3.atCenterOf(blockPos).add(new Vec3(0, 0.2, 0)));
|
||||
w.addFreshEntity(food);
|
||||
} else {
|
||||
player.displayClientMessage(
|
||||
Component.literal("You do not have enough fuel").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true
|
||||
);
|
||||
}
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
||||
player.displayClientMessage(
|
||||
Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
||||
public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package su.a71.tardim_ic.blocks.food_machine;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
|
||||
public class FoodMachineBlockEntity extends BlockEntity {
|
||||
public int curr_food_index;
|
||||
|
||||
public FoodMachineBlockEntity(BlockPos pos, BlockState state) {
|
||||
super(Registration.FOOD_MACHINE_BE, pos, state);
|
||||
this.curr_food_index = 0;
|
||||
}
|
||||
|
||||
public BlockPos getPos() {
|
||||
return this.worldPosition;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void saveAdditional(CompoundTag tag) {
|
||||
tag.putInt("curr_food_index", curr_food_index);
|
||||
//tag.putBoolean("is_powered", isPowered);
|
||||
super.saveAdditional(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(CompoundTag tag) {
|
||||
super.load(tag);
|
||||
curr_food_index = tag.getInt("curr_food_index");
|
||||
//lastPlayer = tag.getUUID("last_player");
|
||||
//event.addListener(new FuelMapReloadListener(GSON, "tardim_fuel"));
|
||||
}
|
||||
}
|
|
@ -1,104 +0,0 @@
|
|||
package su.a71.tardim_ic.blocks.redstone_input;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockBaseTardimPanel;
|
||||
import com.swdteam.tardim.common.init.TRDDimensions;
|
||||
import com.swdteam.tardim.common.init.TRDSounds;
|
||||
import com.swdteam.tardim.network.NetworkHandler;
|
||||
import com.swdteam.tardim.network.PacketOpenEditGui;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel;
|
||||
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.protocol.game.DebugPackets;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.EntityBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
import su.a71.tardim_ic.utils.FakePlayer;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock {
|
||||
|
||||
public RedstoneInputBlock() {
|
||||
super(FabricBlockSettings.create().strength(2, 4).mapColor(MapColor.TERRACOTTA_ORANGE)); // No occlusion? this.setDefaultState((BlockState)this.getDefaultState().with(ON, false));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) {
|
||||
return Registration.REDSTONE_INPUT_BE.create(pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) {
|
||||
if (!w.isClientSide) {
|
||||
|
||||
w.playSound(null, blockPos, TRDSounds.TARDIM_BEEP, SoundSource.BLOCKS, 0.3F, 0.5F);
|
||||
|
||||
BlockEntity be = w.getBlockEntity(blockPos);
|
||||
if (be instanceof RedstoneInputBlockEntity && w.dimension() == TRDDimensions.TARDIS) {
|
||||
TardimData data = TardimManager.getFromPos(blockPos);
|
||||
if (data != null && data.hasPermission(player)) {
|
||||
((RedstoneInputBlockEntity) be).lastPlayer = player.getGameProfile().getId();
|
||||
NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(blockPos, 1));
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
||||
player.displayClientMessage(
|
||||
Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return InteractionResult.CONSUME;
|
||||
}
|
||||
|
||||
public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) {
|
||||
DebugPackets.sendNeighborsUpdatePacket(level, blockPos);
|
||||
|
||||
BlockEntity be = level.getBlockEntity(blockPos);
|
||||
if (!(be instanceof RedstoneInputBlockEntity)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// get redstone signal
|
||||
Direction direction = blockState.getValue(FACING);
|
||||
int redstoneSignal = level.getSignal(blockPos, direction);
|
||||
if (redstoneSignal > 0 && !((RedstoneInputBlockEntity) be).isPowered) {
|
||||
((RedstoneInputBlockEntity) be).isPowered = true;
|
||||
if (level.dimension() == TRDDimensions.TARDIS) {
|
||||
TardimData data = TardimManager.getFromPos(blockPos);
|
||||
if (data != null && !level.isClientSide && ((RedstoneInputBlockEntity) be).lastPlayer != null) {
|
||||
if (((TileEntityBaseTardimPanel)be).hasCommand()) {
|
||||
((TileEntityBaseTardimPanel)be).execute(new FakePlayer(level, blockPos, ((RedstoneInputBlockEntity) be).lastPlayer));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if (redstoneSignal == 0 && ((RedstoneInputBlockEntity) be).isPowered) {
|
||||
((RedstoneInputBlockEntity) be).isPowered = false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package su.a71.tardim_ic.blocks.redstone_input;
|
||||
|
||||
import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
public class RedstoneInputBlockEntity extends TileEntityBaseTardimPanel {
|
||||
public boolean isPowered = false;
|
||||
public UUID lastPlayer = null;
|
||||
|
||||
public RedstoneInputBlockEntity(BlockPos pos, BlockState state) {
|
||||
super(Registration.REDSTONE_INPUT_BE, pos, state);
|
||||
}
|
||||
|
||||
public BlockPos getPos() {
|
||||
return this.worldPosition;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void saveAdditional(CompoundTag tag) {
|
||||
tag.putBoolean("is_powered", isPowered);
|
||||
if (lastPlayer != null) {
|
||||
tag.putUUID("last_player", lastPlayer);
|
||||
}
|
||||
super.saveAdditional(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(CompoundTag tag) {
|
||||
super.load(tag);
|
||||
isPowered = tag.getBoolean("is_powered");
|
||||
lastPlayer = tag.getUUID("last_player");
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
Do we need more roundels?
|
|
@ -1,63 +0,0 @@
|
|||
package su.a71.tardim_ic.command;
|
||||
|
||||
import com.swdteam.tardim.common.command.tardim.CommandTardimBase;
|
||||
import com.swdteam.tardim.common.command.tardim.ICommand;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
|
||||
|
||||
/*
|
||||
This command transmits the cloister bell sound in a big enough radius that you could hear it in any reasonably sized interior.
|
||||
*/
|
||||
public class CommandCloisterBell implements ICommand {
|
||||
@Override
|
||||
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||
if (args.length == 0) {
|
||||
TardimData data = TardimManager.getFromPos(pos);
|
||||
if (data != null) {
|
||||
if (data.hasPermission(player)) {
|
||||
try {
|
||||
Level lvl = player.level();
|
||||
if (!lvl.isClientSide) {
|
||||
lvl.playSound(
|
||||
null,
|
||||
pos,
|
||||
Registration.CLOISTER_BELL,
|
||||
SoundSource.BLOCKS,
|
||||
1.5f,
|
||||
1f
|
||||
);
|
||||
}
|
||||
} catch (Exception var9) {
|
||||
CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "cloister-bell";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return "/cloister-bell";
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandTardimBase.CommandSource allowedSource() {
|
||||
return CommandTardimBase.CommandSource.BOTH;
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
package su.a71.tardim_ic.command;
|
||||
|
||||
import com.swdteam.tardim.common.init.CommandManager;
|
||||
|
||||
public class CommandInit {
|
||||
public static void init() {
|
||||
CommandManager.register(new CommandCloisterBell());
|
||||
CommandManager.register(new CommandListBiomes());
|
||||
CommandManager.register(new CommandListDimensions());
|
||||
}
|
||||
|
||||
public static void addCC() {
|
||||
CommandManager.register(new CommandModemTransmit());
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.digital_interface;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.EntityBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
public class DigitalInterfaceBlock extends Block implements EntityBlock {
|
||||
|
||||
public DigitalInterfaceBlock() {
|
||||
super(Properties.of().strength(2, 4).noOcclusion().mapColor(MapColor.METAL));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) {
|
||||
return ComputerCraftCompat.DIGITAL_INTERFACE_BE.create(pos, state);
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.digital_interface;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
import static su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat.DIGITAL_INTERFACE_BE;
|
||||
|
||||
|
||||
public class DigitalInterfaceTileEntity extends BlockEntity {
|
||||
public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) {
|
||||
super(DIGITAL_INTERFACE_BE, pos, state);
|
||||
}
|
||||
}
|
|
@ -1,829 +0,0 @@
|
|||
package su.a71.tardim_ic.computercraft_compat.peripherals;
|
||||
|
||||
import com.swdteam.tardim.common.command.tardim.CommandTravel;
|
||||
import com.swdteam.tardim.common.init.TRDSounds;
|
||||
import com.swdteam.tardim.common.init.TardimRegistry;
|
||||
import com.swdteam.tardim.common.item.ItemTardim;
|
||||
import com.swdteam.tardim.tardim.TardimData;
|
||||
import com.swdteam.tardim.tardim.TardimData.Location;
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import dan200.computercraft.api.lua.LuaFunction;
|
||||
import dan200.computercraft.api.lua.ObjectLuaTable;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.players.PlayerList;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.biome.Biome;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import su.a71.tardim_ic.computercraft_compat.digital_interface.DigitalInterfaceBlock;
|
||||
import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Registration;
|
||||
import su.a71.tardim_ic.utils.FakePlayer;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
public class DigitalInterfacePeripheral extends TardimPeripheral<DigitalInterfaceBlock> implements IPeripheral {
|
||||
/**
|
||||
* @param tileEntity the tile entity of this peripheral
|
||||
* @hidden
|
||||
*/
|
||||
public DigitalInterfacePeripheral(FakeTardimPeripheralTileEntity tileEntity) {
|
||||
super(tileEntity, "digital_tardim_interface", (DigitalInterfaceBlock) tileEntity.getBlock());
|
||||
}
|
||||
|
||||
// Peripheral methods ===============================================================
|
||||
|
||||
/**
|
||||
* Return how much fuel is left in the TARDIM
|
||||
*
|
||||
* @return Fuel left (Out of 100)
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final double getFuel() throws LuaException {
|
||||
return getTardimData().getFuel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get how much fuel it would take to travel to the destination
|
||||
* @return Amount of fuel needed (Out of 100)
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final double calculateFuelForJourney() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
|
||||
if (data.getTravelLocation() == null) return 0;
|
||||
|
||||
Location curr = data.getCurrentLocation();
|
||||
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 fuel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the TARDIM is locked
|
||||
* @return true if locked, false if not
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final boolean isLocked() throws LuaException {
|
||||
return getTardimData().isLocked();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the TARDIM is in flight
|
||||
* @return true if in flight, false if not
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); }
|
||||
|
||||
/**
|
||||
* Supposedly gets UNIX timestamp of when we entered flight
|
||||
* @return UNIX timestamp if in flight, -1 if not
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final long getTimeEnteredFlight() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (!data.isInFlight()) {
|
||||
return -1;
|
||||
}
|
||||
return data.getTimeEnteredFlight();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get username of the TARDIM's owner
|
||||
* @return String of the owner's username
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final String getOwnerName() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
return data.getOwnerName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lock/unlock the TARDIM
|
||||
* @param locked true to lock, false to unlock
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void setLocked(boolean locked) throws LuaException {
|
||||
getTardimData().setLocked(locked);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current location of the TARDIM
|
||||
* @return ObjectLuaTable of the current location with the following keys:
|
||||
* <ul>
|
||||
* <li>dimension - String of the dimension</li>
|
||||
* <li>pos - table with the keys x, y, z that hold numbers</li>
|
||||
* <li>facing - String of the facing</li>
|
||||
* </ul>
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getCurrentLocation() throws LuaException {
|
||||
Location loc = getTardimData().getCurrentLocation();
|
||||
return new ObjectLuaTable(Map.of(
|
||||
"dimension", loc.getLevel().location().toString(),
|
||||
"pos", new ObjectLuaTable(Map.of(
|
||||
"x", loc.getPos().getX(),
|
||||
"y", loc.getPos().getY(),
|
||||
"z", loc.getPos().getZ()
|
||||
)),
|
||||
"facing", loc.getFacing().toString()
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current location of the TARDIM
|
||||
* @return if there is no destination returns null.
|
||||
* <p>
|
||||
* Otherwise, ObjectLuaTable of the current location with the following keys:
|
||||
* <ul>
|
||||
* <li>dimension - String of the dimension</li>
|
||||
* <li>pos - table with the keys x, y, z that hold numbers</li>
|
||||
* <li>facing - String of the facing</li>
|
||||
* </ul>
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getTravelLocation() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(data.getCurrentLocation());
|
||||
}
|
||||
Location loc = data.getTravelLocation();
|
||||
return new ObjectLuaTable(Map.of(
|
||||
"dimension", loc.getLevel().location().toString(),
|
||||
"pos", new ObjectLuaTable(Map.of(
|
||||
"x", loc.getPos().getX(),
|
||||
"y", loc.getPos().getY(),
|
||||
"z", loc.getPos().getZ()
|
||||
)),
|
||||
"facing", loc.getFacing().toString()
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of the TARDIM owner's companions
|
||||
* @return ObjectLuaTable containing the usernames of the companions
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getCompanions() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
Map<Integer, String> companions = new HashMap<>();
|
||||
for (int i = 0; i < data.getCompanions().size(); i++) {
|
||||
companions.put(i + 1, data.getCompanions().get(i).getUsername());
|
||||
}
|
||||
return new ObjectLuaTable(companions);
|
||||
}
|
||||
|
||||
/**
|
||||
* CommandTravel.isValidPath is for some reason private on Fabric so we reverse engineer it :/
|
||||
* SWDteam pls fix
|
||||
* @hidden
|
||||
*/
|
||||
private boolean isValidPathTemp(String s) {
|
||||
for(int i = 0; i < s.length(); ++i) {
|
||||
if (!CommandTravel.validPathChar(s.charAt(i))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* DimensionMapReloadListener.toTitleCase is unavailable so we reverse engineer it! :D
|
||||
* Fabric... pls fix?
|
||||
* @hidden
|
||||
*/
|
||||
private String toTitleCase(String input) {
|
||||
StringBuilder titleCase = new StringBuilder(input.length());
|
||||
boolean nextTitleCase = true;
|
||||
char[] var3 = input.toCharArray();
|
||||
int var4 = var3.length;
|
||||
|
||||
for(int var5 = 0; var5 < var4; ++var5) {
|
||||
char c = var3[var5];
|
||||
if (Character.isSpaceChar(c)) {
|
||||
nextTitleCase = true;
|
||||
} else if (nextTitleCase) {
|
||||
c = Character.toTitleCase(c);
|
||||
nextTitleCase = false;
|
||||
}
|
||||
|
||||
titleCase.append(c);
|
||||
}
|
||||
|
||||
return titleCase.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set dimension for the TARDIM to travel to
|
||||
* <p>
|
||||
* This is a serious hazard right now due to the fact that I am unable to check if the dimension is valid.
|
||||
* <p>
|
||||
* TODO: If invalid dimension is given, the TARDIM is unable to land until the dimension is changed. Add proper checks.
|
||||
* @param dimension String of the dimension e.g. "minecraft:overworld"
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void setDimension(String dimension) throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
|
||||
String key = dimension;
|
||||
dimension = toTitleCase(dimension);
|
||||
if (TardimManager.DIMENSION_MAP.containsKey(dimension)) {
|
||||
key = (String)TardimManager.DIMENSION_MAP.get(dimension);
|
||||
} else {
|
||||
dimension = dimension.toLowerCase();
|
||||
}
|
||||
|
||||
if (!isValidPathTemp(key)) {
|
||||
throw new LuaException("Invalid dimension");
|
||||
} else {
|
||||
ResourceKey<Level> dim = ResourceKey.create(Registries.DIMENSION, new ResourceLocation(dimension));
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
data.getTravelLocation().setLocation(dim);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the destination's coordinates
|
||||
* @param x X coordinate
|
||||
* @param y Y coordinate
|
||||
* @param z Z coordinate
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void setTravelLocation(int x, int y, int z) throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
data.getTravelLocation().setPosition(x, y, z);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set destination to the TARDIM's owner's home (Must be online)
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void home() throws LuaException {
|
||||
if (this.getTileEntity().getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
TardimData data = getTardimData();
|
||||
|
||||
UUID uuid = data.getOwner();
|
||||
String username = data.getOwnerName();
|
||||
if (uuid == null || username == null) {
|
||||
throw new LuaException("TARDIM has no owner");
|
||||
}
|
||||
|
||||
PlayerList playerList = this.getTileEntity().getLevel().getServer().getPlayerList();
|
||||
ServerPlayer player = playerList.getPlayer(uuid);
|
||||
if (player == null) {
|
||||
throw new LuaException("TARDIM owner is not online");
|
||||
}
|
||||
|
||||
ResourceKey<Level> dim = player.getRespawnDimension();
|
||||
BlockPos pos = player.getRespawnPosition();
|
||||
if (pos == null) {
|
||||
throw new LuaException("TARDIM owner has no home");
|
||||
}
|
||||
|
||||
setDimension(dim.location().toString());
|
||||
setTravelLocation(pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
|
||||
/**
|
||||
* Set destination for a player's location (Player must be online)
|
||||
* @param username - String of the username of the player
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void locatePlayer(String username) throws LuaException {
|
||||
if (this.getTileEntity().getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerList playerList = this.getTileEntity().getLevel().getServer().getPlayerList();
|
||||
|
||||
ServerPlayer player = playerList.getPlayerByName(username);
|
||||
if (player == null) {
|
||||
throw new LuaException("Player not found");
|
||||
}
|
||||
|
||||
// for (ItemStack armour : player.getArmorSlots()) {
|
||||
//// if (armour.is(PERSONAL_JAMMER)) {
|
||||
//// throw new LuaException("Player location jammed");
|
||||
//// };
|
||||
// // TODO: Re-add
|
||||
// }
|
||||
|
||||
ResourceKey<Level> dim = player.getCommandSenderWorld().dimension();
|
||||
BlockPos pos = player.blockPosition();
|
||||
|
||||
setDimension(dim.location().toString());
|
||||
setTravelLocation(pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get online players. Useful for making a GUI for the locate function or just a nice dashboard.
|
||||
*
|
||||
* @return ObjectLuaTable of the online players
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getOnlinePlayers() throws LuaException {
|
||||
if (this.getTileEntity().getLevel().isClientSide()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
PlayerList playerList = this.getTileEntity().getLevel().getServer().getPlayerList();
|
||||
Map<Integer, String> players = new HashMap<>();
|
||||
for (int i = 0; i < playerList.getPlayers().size(); i++) {
|
||||
players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName());
|
||||
}
|
||||
|
||||
return new ObjectLuaTable(players);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the rotation of the TARDIM's door
|
||||
* @return String of the door rotation ("north", "south", "east", "west")
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final String getDoorRotation() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
Direction rotation = data.getTravelLocation().getFacing();
|
||||
switch (rotation) {
|
||||
case NORTH -> {
|
||||
return "north";
|
||||
}
|
||||
case EAST -> {
|
||||
return "east";
|
||||
}
|
||||
case SOUTH -> {
|
||||
return "south";
|
||||
}
|
||||
case WEST -> {
|
||||
return "west";
|
||||
}
|
||||
default -> {
|
||||
throw new LuaException("Invalid door rotation");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the rotation of the TARDIM's door
|
||||
* @param rotation String of the door rotation ("north", "south", "east", "west")
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void setDoorRotation(String rotation) throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
switch (rotation) {
|
||||
case "north" -> data.getTravelLocation().setFacing(Direction.NORTH);
|
||||
case "east" -> data.getTravelLocation().setFacing(Direction.EAST);
|
||||
case "south" -> data.getTravelLocation().setFacing(Direction.SOUTH);
|
||||
case "west" -> data.getTravelLocation().setFacing(Direction.WEST);
|
||||
default -> throw new LuaException("Invalid door rotation");
|
||||
}
|
||||
|
||||
data.save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle the rotation of the TARDIM's door (north -> east -> south -> west -> north)
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void toggleDoorRotation() throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
if (data.getTravelLocation().getFacing() == null) {
|
||||
data.getTravelLocation().setFacing(Direction.NORTH);
|
||||
}
|
||||
|
||||
switch (data.getTravelLocation().getFacing()) {
|
||||
case NORTH -> data.getTravelLocation().setFacing(Direction.EAST);
|
||||
case EAST -> data.getTravelLocation().setFacing(Direction.SOUTH);
|
||||
case SOUTH -> data.getTravelLocation().setFacing(Direction.WEST);
|
||||
case WEST -> data.getTravelLocation().setFacing(Direction.NORTH);
|
||||
default -> data.getTravelLocation().setFacing(Direction.NORTH);
|
||||
}
|
||||
|
||||
data.save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a number to the destination's coordinates
|
||||
* @param axis String of the axis ("x", "y", "z")
|
||||
* @param amount Number to add to the axis
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void coordAdd(String axis, int amount) throws LuaException {
|
||||
TardimData data = getTardimData();
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
Location location = data.getTravelLocation();
|
||||
switch (axis) {
|
||||
case "x" -> location.addPosition(amount, 0, 0);
|
||||
case "y" -> location.addPosition(0, amount, 0);
|
||||
case "z" -> location.addPosition(0, 0, amount);
|
||||
default -> throw new LuaException("Invalid axis");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Dematerialize the TARDIM
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void demat() throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TardimData data = getTardimData();
|
||||
|
||||
if (data.isInFlight()) {
|
||||
throw new LuaException("TARDIM is already in flight");
|
||||
}
|
||||
Location loc = data.getCurrentLocation();
|
||||
ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel());
|
||||
ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH);
|
||||
data.setInFlight(true);
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
// TODO: This is a horrendous way of doing this. Please fix.
|
||||
String level_str = "tardim:tardis_dimension";
|
||||
this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registries.DIMENSION, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF, SoundSource.AMBIENT, 1.0F, 1.0F);
|
||||
|
||||
data.save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Way to use function from Tardim (ModInitializer)
|
||||
* 1WTC pls fix
|
||||
* @hidden
|
||||
*/
|
||||
public static boolean isPosValid(Level level, BlockPos pos) {
|
||||
return validPos(level, pos) && validPos(level, pos.above()) && validPos(level, pos.above().above()) && validPos(level, pos.north()) && validPos(level, pos.north().above()) && validPos(level, pos.south()) && validPos(level, pos.south().above()) && validPos(level, pos.east()) && validPos(level, pos.east().above()) && validPos(level, pos.west()) && validPos(level, pos.west().above());
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DigitalInterfacePeripheral#isPosValid(Level, BlockPos)
|
||||
* @hidden
|
||||
*/
|
||||
private static boolean validPos(Level l, BlockPos pos) {
|
||||
BlockState blockstate = l.getBlockState(pos);
|
||||
return !blockstate.canBeReplaced() && blockstate.getBlock() != Blocks.SNOW ? blockstate.isAir() : true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Materialize the TARDIM at the destination
|
||||
* <p>
|
||||
* Has a LOT of checks to make sure the TARDIM can materialize, so please implement error handling if you use this.
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void remat() throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TardimData data = getTardimData();
|
||||
|
||||
if (data.isInFlight()) {
|
||||
if (data.getTimeEnteredFlight() < System.currentTimeMillis() / 1000L - 10L) {
|
||||
Location loc = data.getTravelLocation();
|
||||
ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel());
|
||||
double fuel = data.calculateFuelForJourney(
|
||||
this.tileEntity.getLevel().getServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos()
|
||||
);
|
||||
if (data.getFuel() >= fuel) {
|
||||
level.getChunk(loc.getPos());
|
||||
BlockPos landingPosButBetter = CommandTravel.getLandingPosition(level, loc.getPos());
|
||||
boolean recalc = false;
|
||||
|
||||
for(int jj = 0; jj < 32; ++jj) {
|
||||
if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
BlockPos pos2 = landingPosButBetter.offset(
|
||||
level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1),
|
||||
0,
|
||||
level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1)
|
||||
);
|
||||
landingPosButBetter = CommandTravel.getLandingPosition(level, pos2);
|
||||
if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
recalc = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!recalc) {
|
||||
for(int jj = 0; jj < 32; ++jj) {
|
||||
if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
BlockPos pos2 = landingPosButBetter.offset(
|
||||
level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1),
|
||||
0,
|
||||
level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1)
|
||||
);
|
||||
landingPosButBetter = CommandTravel.getLandingPosition(level, pos2);
|
||||
if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
recalc = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!recalc) {
|
||||
for(int jj = 0; jj < 32; ++jj) {
|
||||
if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
BlockPos pos2 = landingPosButBetter.offset(
|
||||
level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1),
|
||||
0,
|
||||
level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1)
|
||||
);
|
||||
landingPosButBetter = CommandTravel.getLandingPosition(level, pos2);
|
||||
if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
recalc = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) {
|
||||
loc.setPosition(landingPosButBetter.getX(), landingPosButBetter.getY(), landingPosButBetter.getZ());
|
||||
if (isPosValid(level, loc.getPos())) {
|
||||
TardimRegistry.TardimBuilder builder = TardimRegistry.getTardimBuilder(data.getTardimID());
|
||||
builder.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId());
|
||||
data.setCurrentLocation(data.getTravelLocation());
|
||||
data.setTravelLocation(null);
|
||||
data.setInFlight(false);
|
||||
data.addFuel(-fuel);
|
||||
data.save();
|
||||
|
||||
// if (!recalc) {
|
||||
// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source);
|
||||
// } else {
|
||||
// sendResponse(player, "Landing recalculated due to obstruction", CommandTardimBase.ResponseType.INFO, source);
|
||||
// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source);
|
||||
// }
|
||||
|
||||
String level_str = "tardim:tardis_dimension";
|
||||
this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registries.DIMENSION, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING, SoundSource.AMBIENT, 1.0F, 1.0F);
|
||||
|
||||
} else {
|
||||
throw new LuaException("TARDIM landing obstructed. Aborting...");
|
||||
}
|
||||
} else {
|
||||
throw new LuaException("TARDIM landing obstructed. Aborting...");
|
||||
}
|
||||
} else {
|
||||
throw new LuaException("Not enough fuel for journey");
|
||||
}
|
||||
} else {
|
||||
throw new LuaException("TARDIM is still taking off");
|
||||
}
|
||||
} else {
|
||||
throw new LuaException("TARDIM has already landed");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Locate a biome
|
||||
* @param biome_str String of the biome e.g. "minecraft:plains"
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void locateBiome(String biome_str) throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TardimData data = getTardimData();
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
Optional<Biome> biome = this.tileEntity.getLevel().getServer()
|
||||
.registryAccess()
|
||||
.registryOrThrow(Registries.BIOME)
|
||||
.getOptional(new ResourceLocation(biome_str));
|
||||
if (biome != null && biome.isPresent()) {
|
||||
if (data.getTravelLocation() == null) {
|
||||
data.setTravelLocation(new Location(data.getCurrentLocation()));
|
||||
}
|
||||
|
||||
ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(data.getTravelLocation().getLevel());
|
||||
BlockPos blockpos = new BlockPos(
|
||||
data.getTravelLocation().getPos().getX(),
|
||||
level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, data.getTravelLocation().getPos()).getY(),
|
||||
data.getTravelLocation().getPos().getZ()
|
||||
);
|
||||
BlockPos blockpos1 = this.findNearestBiome(level, (Biome)biome.get(), blockpos, 6400, 8);
|
||||
if (blockpos1 != null) {
|
||||
data.getTravelLocation().setPosition(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ());
|
||||
data.save();
|
||||
} else {
|
||||
throw new LuaException("Biome not found");
|
||||
}
|
||||
} else {
|
||||
throw new LuaException("Unknown biome");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to find a biome
|
||||
* @param level ServerLevel to search
|
||||
* @param biome Biome to find
|
||||
* @param pos BlockPos to start from
|
||||
* @param i Idk what this is, likely a radius
|
||||
* @param j No idea about this either
|
||||
* @return BlockPos of the biome
|
||||
* @hidden
|
||||
*/
|
||||
public BlockPos findNearestBiome(ServerLevel level, Biome biome, BlockPos pos, int i, int j) {
|
||||
Pair<BlockPos, Holder<Biome>> bb = level.getChunkSource()
|
||||
.getGenerator()
|
||||
.getBiomeSource()
|
||||
.findBiomeHorizontal(
|
||||
pos.getX(),
|
||||
pos.getY(),
|
||||
pos.getZ(),
|
||||
i,
|
||||
j,
|
||||
b_val -> b_val.value() == biome,
|
||||
level.random,
|
||||
true,
|
||||
level.getChunkSource().randomState().sampler()
|
||||
);
|
||||
return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the skin of the TARDIM
|
||||
* @param skin Skin name to change to
|
||||
* @hidden
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void setSkin(String skin) throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
|
||||
TardimData data = getTardimData();
|
||||
|
||||
ResourceLocation skinToApply = null;
|
||||
Iterator var13 = TardimRegistry.getRegistry().keySet().iterator();
|
||||
|
||||
label39: {
|
||||
ResourceLocation builder;
|
||||
TardimRegistry.TardimBuilder b;
|
||||
do {
|
||||
if (!var13.hasNext()) {
|
||||
break label39;
|
||||
}
|
||||
|
||||
builder = (ResourceLocation)var13.next();
|
||||
b = TardimRegistry.getTardimBuilder(builder);
|
||||
} while(!b.getDisplayName().equalsIgnoreCase(skin) && !builder.toString().equalsIgnoreCase(skin));
|
||||
|
||||
skinToApply = builder;
|
||||
}
|
||||
|
||||
if (skinToApply == null) {
|
||||
throw new LuaException("Skin '" + skin + "' not found");
|
||||
}
|
||||
|
||||
TardimData.Location loc = data.getCurrentLocation();
|
||||
ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel());
|
||||
data.setIdentifier(skinToApply);
|
||||
|
||||
// FakePlayer...
|
||||
TardimRegistry.getTardimBuilder(skinToApply).changeTardimSkin(data, level, loc.getPos(), loc.getFacing(), new FakePlayer(this.tileEntity.getLevel(), this.tileEntity.getPos()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all available TARDIM skins. Useful for making a GUI skin selection.
|
||||
*
|
||||
* @return ObjectLuaTable of the available skins
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getSkins() throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Map<Integer, String> skins = new HashMap<>();
|
||||
|
||||
Iterator var5 = TardimRegistry.getRegistry().keySet().iterator();
|
||||
int i = 0;
|
||||
while(var5.hasNext()) {
|
||||
ResourceLocation builder = (ResourceLocation)var5.next();
|
||||
TardimRegistry.TardimBuilder b = TardimRegistry.getTardimBuilder(builder);
|
||||
skins.put(i + 1, b.getDisplayName());
|
||||
i++;
|
||||
}
|
||||
|
||||
return new ObjectLuaTable(skins);
|
||||
}
|
||||
|
||||
/**
|
||||
* Play cloister bell sound.
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final void cloisterBell() throws LuaException {
|
||||
if (this.tileEntity.getLevel().isClientSide()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Level lvl = this.tileEntity.getLevel();
|
||||
if (!lvl.isClientSide) {
|
||||
lvl.playSound(
|
||||
null,
|
||||
this.tileEntity.getPos(),
|
||||
Registration.CLOISTER_BELL,
|
||||
SoundSource.BLOCKS,
|
||||
1.5f,
|
||||
1f
|
||||
);
|
||||
}
|
||||
} catch (Exception var9) {
|
||||
throw new LuaException("There was an error trying to play the sound");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a table with all registered biomes' names.
|
||||
* Useful for creating advanced navigation systems.
|
||||
* @return ObjectLuaTable with all biomes' technical names
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getBiomes() throws LuaException {
|
||||
Map<Integer, String> biomes = new HashMap<>();
|
||||
Registry<Biome> biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registries.BIOME);
|
||||
Iterator<ResourceLocation> biome_it = biomeRegistry.keySet().iterator();
|
||||
int i = 0;
|
||||
while (biome_it.hasNext()) {
|
||||
biomes.put(i + 1, biome_it.next().toString());
|
||||
i++;
|
||||
}
|
||||
|
||||
return new ObjectLuaTable(biomes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a table with all registered dimensions' names.
|
||||
* Useful for creating advanced navigation systems.
|
||||
* @return ObjectLuaTable with all dimensions' technical names
|
||||
*/
|
||||
@LuaFunction(mainThread = true)
|
||||
public final ObjectLuaTable getDimensions() throws LuaException {
|
||||
Iterator<ServerLevel> dim_it = this.tileEntity.getLevel().getServer().getAllLevels().iterator(); // TODO: Does this really work?
|
||||
Map<Integer, String> dimensions = new HashMap<>();
|
||||
int i = 0;
|
||||
while (dim_it.hasNext()) {
|
||||
dimensions.put(i + 1, dim_it.next().dimension().location().toString());
|
||||
i++;
|
||||
}
|
||||
return new ObjectLuaTable(dimensions);
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
Display sources for the cartridge loader
|
||||
|
||||
* Inserted X/Y/Z/Dimension
|
|
@ -1,5 +0,0 @@
|
|||
Display sources for the docking station:
|
||||
|
||||
* Owner of docked TARDIM
|
||||
* Lock status
|
||||
* Docked TARDIM's companion list
|
|
@ -1,61 +0,0 @@
|
|||
//package su.a71.tardim_ic.display_source.fuel_storage;
|
||||
//
|
||||
//
|
||||
//import com.simibubi.create.content.redstone.displayLink.DisplayLinkContext;
|
||||
//import com.simibubi.create.content.redstone.displayLink.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.getSourceBlockEntity();
|
||||
// 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;
|
||||
// }
|
||||
//}
|
|
@ -1,54 +0,0 @@
|
|||
//package su.a71.tardim_ic.display_source.fuel_storage;
|
||||
//
|
||||
//import com.simibubi.create.content.redstone.displayLink.DisplayLinkContext;
|
||||
//import com.simibubi.create.content.redstone.displayLink.source.NumericSingleLineDisplaySource;
|
||||
//import com.simibubi.create.content.redstone.displayLink.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.getSourceBlockEntity();
|
||||
// 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;
|
||||
// }
|
||||
//}
|
|
@ -1,5 +0,0 @@
|
|||
Display sources for the scanner:
|
||||
|
||||
* Owner name
|
||||
* Companion list
|
||||
* Get current TARDIM skin
|
|
@ -1,5 +0,0 @@
|
|||
Display sources for the time rotor:
|
||||
|
||||
* Both current and destination - X/Y/Z/Dimension
|
||||
* Flight status YES/NO
|
||||
*
|
|
@ -1,56 +0,0 @@
|
|||
package su.a71.tardim_ic.jammer;
|
||||
|
||||
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.world.item.ArmorItem;
|
||||
import net.minecraft.world.item.ArmorMaterial;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class PersonalJammerMaterial implements ArmorMaterial {
|
||||
private static final int[] BASE_DURABILITY = new int[] {13, 15, 16, 11};
|
||||
private static final int[] PROTECTION_VALUES = new int[] {1, 1, 1, 1};
|
||||
|
||||
@Override
|
||||
public int getDurabilityForType(ArmorItem.Type type) {
|
||||
return BASE_DURABILITY[type.getSlot().getIndex()] * 33;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDefenseForType(ArmorItem.Type type) {
|
||||
return PROTECTION_VALUES[type.getSlot().getIndex()];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnchantmentValue() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SoundEvent getEquipSound() {
|
||||
return SoundEvents.ARMOR_EQUIP_GENERIC;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Ingredient getRepairIngredient() {
|
||||
return Ingredient.of(Items.IRON_INGOT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
// Must be all lowercase
|
||||
return "personal_jammer";
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getToughness() {
|
||||
return 0.0F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getKnockbackResistance() {
|
||||
return 0.1F;
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
package su.a71.tardim_ic.mixin;
|
||||
|
||||
import com.swdteam.tardim.tardim.TardimManager;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
|
||||
import static com.swdteam.tardim.tardim.TardimManager.FUEL_MAP;
|
||||
|
||||
// This mixin aims to make TARDIM fuel system less awful by allowing users to put standard furnace fuel into it.
|
||||
@Mixin(value = TardimManager.class, remap = true)
|
||||
public class BetterFuelMapMixin {
|
||||
|
||||
@Overwrite
|
||||
public static boolean isFuel(Item i) {
|
||||
return FUEL_MAP.containsKey(i) || AbstractFurnaceBlockEntity.getFuel().containsKey(i);
|
||||
}
|
||||
|
||||
@Overwrite
|
||||
public static double getFuel(Item i) {
|
||||
if (!isFuel(i)) {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if (!AbstractFurnaceBlockEntity.getFuel().containsKey(i)) {
|
||||
return (Double)FUEL_MAP.get(i);
|
||||
}
|
||||
else
|
||||
return AbstractFurnaceBlockEntity.getFuel().get(i) / 8000.0; // Adapt with coal's 1600 ticks -> 0.2 fuel
|
||||
}
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package su.a71.tardim_ic.mixin;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockFuelStorage;
|
||||
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.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.BucketItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.HopperBlock;
|
||||
import net.minecraft.world.level.block.entity.HopperBlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
import static su.a71.tardim_ic.Constants.LOG;
|
||||
|
||||
@Mixin(value = TileEntityFuelStorage.class, remap = true)
|
||||
public class BetterFuelStorageMixin {
|
||||
|
||||
// This is rather inefficient as we iterate 2 times
|
||||
// However, the hoppers are so small and this method is called so rarely that it should be fine.
|
||||
@Inject(method = "serverTick(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lcom/swdteam/tardim/tileentity/TileEntityFuelStorage;)V",
|
||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/entity/HopperBlockEntity;removeItem(II)Lnet/minecraft/world/item/ItemStack;"),
|
||||
locals = LocalCapture.CAPTURE_FAILHARD)
|
||||
private static void saveLavaBuckets(Level world, BlockPos pos, BlockState state, TileEntityFuelStorage blockEntity, CallbackInfo ci) {
|
||||
HopperBlockEntity mixin_hopper = (HopperBlockEntity)world.getBlockEntity(blockEntity.getBlockPos().above());
|
||||
for(int j = 0; j < mixin_hopper.getContainerSize(); ++j) {
|
||||
ItemStack stack = mixin_hopper.getItem(j);
|
||||
double fuel = TardimManager.getFuel(stack.getItem());
|
||||
if (fuel > 0.0) {
|
||||
if (stack.getItem() instanceof BucketItem) {
|
||||
LOG.info("THIS IS A BUCKET");
|
||||
mixin_hopper.setItem(j, new ItemStack(stack.getItem().getCraftingRemainingItem(), 2));
|
||||
} else {
|
||||
mixin_hopper.removeItem(j, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
package su.a71.tardim_ic.mixin;
|
||||
|
||||
import com.swdteam.tardim.common.init.CommandManager;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import su.a71.tardim_ic.command.CommandInit;
|
||||
import su.a71.tardim_ic.platform.Services;
|
||||
|
||||
@Mixin(value = CommandManager.class, remap = false)
|
||||
public class CommandsMixin {
|
||||
@Inject(method="init()V", at=@At("TAIL"))
|
||||
private static void init(CallbackInfo ci) {
|
||||
CommandInit.init();
|
||||
if (Services.PLATFORM.isModLoaded("computercraft")) {
|
||||
CommandInit.addCC();
|
||||
}
|
||||
System.out.println("TARDIM: IC added commands using mixin");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
package su.a71.tardim_ic.platform;
|
||||
|
||||
import su.a71.tardim_ic.platform.services.IPlatformHelper;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
|
||||
public class FabricPlatformHelper implements IPlatformHelper {
|
||||
@Override
|
||||
public String getPlatformName() {
|
||||
return "Fabric";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModLoaded(String modId) {
|
||||
|
||||
return FabricLoader.getInstance().isModLoaded(modId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDevelopmentEnvironment() {
|
||||
|
||||
return FabricLoader.getInstance().isDevelopmentEnvironment();
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
package su.a71.tardim_ic.soviet_chronobox;
|
||||
|
||||
import com.swdteam.tardim.common.init.TRDTiles;
|
||||
import com.swdteam.tardim.tileentity.TileEntityTardim;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import su.a71.tardim_ic.tardim_ic.registration.Exteriors;
|
||||
|
||||
public class SovietChronoboxTileEntity extends TileEntityTardim {
|
||||
public SovietChronoboxTileEntity(BlockPos pos, BlockState state) {
|
||||
super(Exteriors.TILE_SOVIET_CHRONOBOX, pos, state);
|
||||
}
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
package su.a71.tardim_ic.tardim_ic.registration;
|
||||
|
||||
import com.swdteam.tardim.common.block.BlockFuelStorage;
|
||||
import com.swdteam.tardim.common.block.BlockRotor;
|
||||
import com.swdteam.tardim.common.block.BlockTardimScanner;
|
||||
import dan200.computercraft.api.peripheral.PeripheralLookup;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import su.a71.tardim_ic.Constants;
|
||||
import su.a71.tardim_ic.computercraft_compat.digital_interface.DigitalInterfaceBlock;
|
||||
import su.a71.tardim_ic.computercraft_compat.digital_interface.DigitalInterfaceTileEntity;
|
||||
import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity;
|
||||
import su.a71.tardim_ic.computercraft_compat.peripherals.DigitalInterfacePeripheral;
|
||||
import su.a71.tardim_ic.computercraft_compat.peripherals.FuelStoragePeripheral;
|
||||
import su.a71.tardim_ic.computercraft_compat.peripherals.TardimScannerPeripheral;
|
||||
import su.a71.tardim_ic.computercraft_compat.peripherals.TimeRotorPeripheral;
|
||||
|
||||
import static com.swdteam.tardim.common.init.TRDBlocks.*;
|
||||
import static su.a71.tardim_ic.tardim_ic.registration.Registration.registerBlock;
|
||||
|
||||
public class ComputerCraftCompat {
|
||||
public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock();
|
||||
|
||||
public static final BlockEntityType<DigitalInterfaceTileEntity> DIGITAL_INTERFACE_BE = Registry.register(
|
||||
BuiltInRegistries.BLOCK_ENTITY_TYPE,
|
||||
new ResourceLocation("tardim_ic", "digital_tardim_interface"),
|
||||
FabricBlockEntityTypeBuilder.create(DigitalInterfaceTileEntity::new, DIGITAL_TARDIM_INTERFACE).build()
|
||||
);
|
||||
|
||||
public static void register() {
|
||||
Constants.LOG.info("Loaded ComputerCraft compatibility!");
|
||||
|
||||
registerBlock("digital_tardim_interface", () -> DIGITAL_TARDIM_INTERFACE, null);
|
||||
|
||||
PeripheralLookup.get().registerForBlockEntity((entity, direction) -> new DigitalInterfacePeripheral(new FakeTardimPeripheralTileEntity(entity.getBlockPos(), entity.getLevel())), DIGITAL_INTERFACE_BE);
|
||||
PeripheralLookup.get().registerForBlocks((world, pos, state, blockEntity, direction) -> {
|
||||
if (state.getBlock() instanceof BlockFuelStorage) {
|
||||
return new FuelStoragePeripheral(new FakeTardimPeripheralTileEntity(pos, world));
|
||||
} else if (state.getBlock() instanceof BlockRotor) {
|
||||
return new TimeRotorPeripheral(new FakeTardimPeripheralTileEntity(pos, world));
|
||||
} else if (state.getBlock() instanceof BlockTardimScanner) {
|
||||
return new TardimScannerPeripheral(new FakeTardimPeripheralTileEntity(pos, world));
|
||||
}
|
||||
return null;
|
||||
}, FUEL_STORAGE, SCANNER, ROTOR);
|
||||
}
|
||||
|
||||
public static void addToTab(CreativeModeTab.ItemDisplayParameters itemDisplayParameters, CreativeModeTab.Output output) {
|
||||
output.accept(DIGITAL_TARDIM_INTERFACE);
|
||||
}
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
package su.a71.tardim_ic.tardim_ic.registration;
|
||||
|
||||
|
||||
//import com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import su.a71.tardim_ic.Constants;
|
||||
//import su.a71.tardim_ic.display_source.fuel_storage.FuelLevelDisplaySource;
|
||||
//import su.a71.tardim_ic.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!");
|
||||
//
|
||||
// AllDisplayBehaviours.assignBlockEntity(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_storage_display_source"), new FuelLevelDisplaySource()), TILE_FUEL_STORAGE);
|
||||
// AllDisplayBehaviours.assignBlockEntity(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_required_display_source"), new RequiredFuelDisplaySource()), TILE_FUEL_STORAGE);
|
||||
}
|
||||
|
||||
|
||||
}
|