Create new branch with working NeoForged mod

This commit is contained in:
Andrew-71 2023-10-07 10:14:55 +03:00
parent d989f493c2
commit 5fc92b5780
177 changed files with 518 additions and 6264 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "tardim_ic:block/digital_tardim_interface"
}
}
}

View file

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

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "tardim_ic:block/redstone_tardim_input"
}
}
}

View file

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

View file

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

View file

@ -1,5 +0,0 @@
{
"variants": {
"": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_floor" }
}
}

View file

@ -1,5 +0,0 @@
{
"variants": {
"": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_roof" }
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

View file

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

View file

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

View file

@ -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": "Звукъ временного колокола"
}

View file

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

View file

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

View file

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

View file

@ -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"}
}
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

@ -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": []
}
]
}

View file

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

View file

@ -1,13 +0,0 @@
{
"credit": "Made by karoter2",
"texture_size": [64, 64],
"groups": [
{
"name": "group",
"origin": [0, 0, 0],
"color": 0,
"nbt": "{}",
"children": []
}
]
}

View file

@ -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"}
}
}
]
}

View file

@ -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"}
}
}
]
}

View file

@ -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"}
}
}
]
}

View file

@ -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"}
}
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +0,0 @@
{
"cloister": {
"subtitle": "subtitles.tardim_ic.cloister",
"sounds": [
"tardim_ic:cloister"
]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 927 B

View file

@ -1,7 +0,0 @@
{
"animation": {
"frametime": 10,
"interpolate": true,
"frames": [0, 1, 2, 3]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

View file

@ -1,7 +0,0 @@
{
"animation": {
"frametime": 10,
"interpolate": true,
"frames": [0, 1, 2, 3]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

View file

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

View file

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

View file

@ -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"
}
]
}
]
}
]
}

View file

@ -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"
}
]
}
]
}
]
}

View file

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

View file

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

View file

@ -1,6 +0,0 @@
{
"pack": {
"description": "${mod_name}",
"pack_format": 8
}
}

View file

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

Binary file not shown.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1 +0,0 @@
Do we need more roundels?

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,3 +0,0 @@
Display sources for the cartridge loader
* Inserted X/Y/Z/Dimension

View file

@ -1,5 +0,0 @@
Display sources for the docking station:
* Owner of docked TARDIM
* Lock status
* Docked TARDIM's companion list

View file

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

View file

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

View file

@ -1,5 +0,0 @@
Display sources for the scanner:
* Owner name
* Companion list
* Get current TARDIM skin

View file

@ -1,5 +0,0 @@
Display sources for the time rotor:
* Both current and destination - X/Y/Z/Dimension
* Flight status YES/NO
*

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

Some files were not shown because too many files have changed in this diff Show more