Compare commits
No commits in common. "1.19" and "1.20" have entirely different histories.
15
.gitattributes
vendored
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
* text eol=lf
|
||||||
|
*.bat text eol=crlf
|
||||||
|
*.patch text eol=lf
|
||||||
|
*.java text eol=lf
|
||||||
|
*.gradle text eol=crlf
|
||||||
|
*.png binary
|
||||||
|
*.gif binary
|
||||||
|
*.exe binary
|
||||||
|
*.dll binary
|
||||||
|
*.jar binary
|
||||||
|
*.lzma binary
|
||||||
|
*.zip binary
|
||||||
|
*.pyd binary
|
||||||
|
*.cfg text eol=lf
|
||||||
|
*.jks binary
|
130
.gitignore
vendored
|
@ -1,118 +1,24 @@
|
||||||
# User-specific stuff
|
# eclipse
|
||||||
.idea/
|
bin
|
||||||
|
*.launch
|
||||||
|
.settings
|
||||||
|
.metadata
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
|
||||||
*.iml
|
# idea
|
||||||
|
out
|
||||||
*.ipr
|
*.ipr
|
||||||
*.iws
|
*.iws
|
||||||
|
*.iml
|
||||||
|
.idea/*
|
||||||
|
!.idea/scopes
|
||||||
|
|
||||||
# IntelliJ
|
# gradle
|
||||||
out/
|
build
|
||||||
# mpeltonen/sbt-idea plugin
|
|
||||||
.idea_modules/
|
|
||||||
|
|
||||||
# JIRA plugin
|
|
||||||
atlassian-ide-plugin.xml
|
|
||||||
|
|
||||||
# Compiled class file
|
|
||||||
*.class
|
|
||||||
|
|
||||||
# Log file
|
|
||||||
*.log
|
|
||||||
|
|
||||||
# BlueJ files
|
|
||||||
*.ctxt
|
|
||||||
|
|
||||||
# Package Files #
|
|
||||||
*.jar
|
|
||||||
*.war
|
|
||||||
*.nar
|
|
||||||
*.ear
|
|
||||||
*.zip
|
|
||||||
*.tar.gz
|
|
||||||
*.rar
|
|
||||||
|
|
||||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
|
||||||
hs_err_pid*
|
|
||||||
|
|
||||||
*~
|
|
||||||
|
|
||||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
|
||||||
.fuse_hidden*
|
|
||||||
|
|
||||||
# KDE directory preferences
|
|
||||||
.directory
|
|
||||||
|
|
||||||
# Linux trash folder which might appear on any partition or disk
|
|
||||||
.Trash-*
|
|
||||||
|
|
||||||
# .nfs files are created when an open file is removed but is still being accessed
|
|
||||||
.nfs*
|
|
||||||
|
|
||||||
# General
|
|
||||||
.DS_Store
|
|
||||||
.AppleDouble
|
|
||||||
.LSOverride
|
|
||||||
|
|
||||||
# Icon must end with two \r
|
|
||||||
Icon
|
|
||||||
|
|
||||||
# Thumbnails
|
|
||||||
._*
|
|
||||||
|
|
||||||
# Files that might appear in the root of a volume
|
|
||||||
.DocumentRevisions-V100
|
|
||||||
.fseventsd
|
|
||||||
.Spotlight-V100
|
|
||||||
.TemporaryItems
|
|
||||||
.Trashes
|
|
||||||
.VolumeIcon.icns
|
|
||||||
.com.apple.timemachine.donotpresent
|
|
||||||
|
|
||||||
# Directories potentially created on remote AFP share
|
|
||||||
.AppleDB
|
|
||||||
.AppleDesktop
|
|
||||||
Network Trash Folder
|
|
||||||
Temporary Items
|
|
||||||
.apdisk
|
|
||||||
|
|
||||||
# Windows thumbnail cache files
|
|
||||||
Thumbs.db
|
|
||||||
Thumbs.db:encryptable
|
|
||||||
ehthumbs.db
|
|
||||||
ehthumbs_vista.db
|
|
||||||
|
|
||||||
# Dump file
|
|
||||||
*.stackdump
|
|
||||||
|
|
||||||
# Folder config file
|
|
||||||
[Dd]esktop.ini
|
|
||||||
|
|
||||||
# Recycle Bin used on file shares
|
|
||||||
$RECYCLE.BIN/
|
|
||||||
|
|
||||||
# Windows Installer files
|
|
||||||
*.cab
|
|
||||||
*.msi
|
|
||||||
*.msix
|
|
||||||
*.msm
|
|
||||||
*.msp
|
|
||||||
|
|
||||||
# Windows shortcuts
|
|
||||||
*.lnk
|
|
||||||
|
|
||||||
.gradle
|
.gradle
|
||||||
build/
|
|
||||||
|
|
||||||
# Ignore Gradle GUI config
|
# other
|
||||||
gradle-app.setting
|
eclipse
|
||||||
|
run
|
||||||
# Cache of project
|
/.idea/
|
||||||
.gradletasknamecache
|
|
||||||
|
|
||||||
**/build/
|
|
||||||
|
|
||||||
# Common working directory
|
|
||||||
run/
|
|
||||||
|
|
||||||
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
|
|
||||||
!gradle-wrapper.jar
|
|
||||||
|
|
3
.idea/scopes/Fabric_sources.xml
generated
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<component name="DependencyValidationManager">
|
||||||
|
<scope name="Fabric sources" pattern="!ext[Gradle: cpw.mods:*:*]:*/&&!ext[Gradle: mezz.jei:*:*:*]:*/&&!ext[Gradle: net.jodah:typetools:*]:*/&&!ext[Gradle: net.minecraft:client:extra:*]:*/&&!ext[Gradle: net.minecraft:joined*:*]:*/&&!ext[Gradle: net.minecraft:mappings_official:zip:*]:*/&&!ext[Gradle: net.minecraftforge:*:*]:*/" />
|
||||||
|
</component>
|
3
.idea/scopes/Forge_sources.xml
generated
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<component name="DependencyValidationManager">
|
||||||
|
<scope name="Forge sources" pattern="!ext[Gradle: loom_mappings_*:*:*]:*/&&!ext[Gradle: net.fabricmc:*:*]:*/&&!ext[Gradle: net.minecraft:joined*:*]:*/&&!ext[Gradle: net.minecraft:mappings_official:zip:*]:*/&&!ext[Gradle: net.minecraft:minecraft-project-*:*]:*/" />
|
||||||
|
</component>
|
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023 Andrey Nikitin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
59
README.md
|
@ -1,38 +1,49 @@
|
||||||
# TARDIM: In Control
|

|
||||||
### All of time and space, *now automated*.
|
### All of time and space, *now automated and improved*.
|
||||||
|
|
||||||
This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using a new blocks and peripherals.
|
This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim),
|
||||||
|
and adds a way to control and manage your time (but mostly space) machine with new blocks, redstone,
|
||||||
|
and even other mods like [ComputerCraft: Tweaked](https://tweaked.cc) or [Create](https://github.com/Creators-of-Create/Create)
|
||||||
|
|
||||||
### Features:
|
## Features:
|
||||||
* Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using CC methods! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has.
|
* New commands that let you ring cloister bell or list all biomes and dimensions
|
||||||
* Redstone TARDIM Input: New control block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone
|
* Improved fuel system, which will take in any furnace fuel and won't consume buckets
|
||||||
* *This is just the beginning, there are more features to come!*
|
* Redstone TARDIM Input: New block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone
|
||||||
|
* Full ComputerCraft integration
|
||||||
|
* Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using computers! The peripheral supports almost all commands that the TARDIM computer panel has.
|
||||||
|
* Peripherals for some of the TARDIM blocks that provide a few of digital interface's methods at smaller costs
|
||||||
|
* New exterior - Soviet Chronobox, styled like a USSR phone booth
|
||||||
|
* [Coming once Create Fabric is on 1.20] Create integration (display sources): some of the blocks will now be able to act as a display source with Create mod
|
||||||
|
* [WIP] Food machine - exchange fuel for food. *Currently only in creative mode and half finished.*
|
||||||
|
* You can see planned features [in the docs](https://tardim.a71.su/planned)
|
||||||
|
|
||||||
### Note
|
## Example use-cases
|
||||||
This is important, due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral
|
|
||||||
will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters" like fuel info), so if you want to have this on your server
|
|
||||||
and do not trust everyone not to steal your blue box, make sure there is some kind of plot claim mod. If there will be demand for it I can try adding a config option to disable all but "harmless" methods.\
|
|
||||||
And another thing: the method that sets destination dimension doesn't check if the dimension is valid, if you cannot land just change dimension to a valid one.
|
|
||||||
|
|
||||||
### Example use-cases
|
|
||||||
* Make a dashboard to monitor fuel levels, current location, and other information on a screen in a nice way.
|
* Make a dashboard to monitor fuel levels, current location, and other information on a screen in a nice way.
|
||||||
* Get refined control over your TARDIM, such as saving and loading locations, or setting a destination in a GUI.
|
* Get refined control over your TARDIM, such as saving and loading locations, or setting a destination in a GUI.
|
||||||
* Add visual effects that activate during flight e.g. note blocks or Create mod contraptions.
|
* Add visual effects that activate during flight e.g. note blocks or Create mod contraptions.
|
||||||
|
|
||||||
The possibilities are endless, the only limit is your imagination! (And coding skills)
|
The possibilities are endless, the only limit is your imagination!
|
||||||
|
|
||||||
### FAQ
|
## Documentation
|
||||||
|
Information about the mod's blocks and integration, crafting recipes, and plans for development are available at https://tardim.a71.su
|
||||||
|
|
||||||
|
## FAQ
|
||||||
|
|
||||||
**Is this for Fabric or Forge?**
|
**Is this for Fabric or Forge?**
|
||||||
: As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders.
|
: Both! As a Fabric player who recognises Forge's large playerbase, I support both major modloaders.
|
||||||
However, the Fabric version is not yet released as I am waiting until I have a stable version to start porting the mod.
|
However, due to nature of development Fabric versions may get released a bit earlier.
|
||||||
If you would like to use this mod but the version you want is missing I would suggest following the mod.
|
|
||||||
|
|
||||||
**Can I use this in my modpack?**
|
**Can I use this in my modpack?**
|
||||||
: Sure, as long as you credit me and link to this page.
|
: Sure, as long as you don't claim the mod as your own. A link to this mod's page would be appreciated too.
|
||||||
|
|
||||||
**Will there be a 1.19.3 version and beyond?**
|
**Will there be a 1.20.1 version and beyond?**
|
||||||
: Yes, I will try my best to update to later versions as soon as **both** ComputerCraft: Tweaked and TARDIM receive stable versions for them.
|
: I am in the process of moving to 1.20, with Fabric already out and Forge in progress.
|
||||||
|
I intend to follow latest versions with TARDIM.
|
||||||
|
|
||||||
**I don't know CC, will this always be a CC-only mod?**
|
**I encountered a bug or have a suggestion. What do I do?**
|
||||||
: OK, fine, nobody actually asked that. But in case you did, good news: No! As you might've noticed, version 0.8 add a block that make it possible to integrate your TARDIM into good old redstone! Going forward, I plan to add some way to get redstone *output* from the TARDIM as well, and maybe even streamline things like the cloister bell for those who don't want to code their own implementations!
|
: If you have a problem or suggestion, the best way to get them to me is through the project's Discord server.
|
||||||
|
|
||||||
|
**Do I need to install things like ComputerCraft or Create for this mod?**
|
||||||
|
: Nope! While I highly suggest you do (because digital interface is in my opinion the star of the show),
|
||||||
|
you can enjoy a lot of TARDIM: In Control's features with only TARDIM installed.
|
||||||
|
If you ever decide to add other optional dependencies, the relevant blocks will become available and craftable!
|
15
SWD_MOMENT.txt
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
=== HOW MANY PROBLEMS TARDIM HAS?! ===
|
||||||
|
1. A few log messages definitely left from testing (e.g. aklfjsjsfw)
|
||||||
|
2. isValidFlightPath is private on Fabric
|
||||||
|
3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS
|
||||||
|
4. [FIXED] Adding custom commands was private for literally 0 reason
|
||||||
|
5. com.swdteam.tardim.common.data.DimensionMapReloadListener has modid tutorial in
|
||||||
|
public ResourceLocation getFabricId() {
|
||||||
|
return new ResourceLocation("tutorial", "tardim_dimension_lookup");
|
||||||
|
}
|
||||||
|
5.1 Forge's MANIFEST.MF too!
|
||||||
|
|
||||||
|
Andrew71's proposals:
|
||||||
|
1. Quick-return command
|
||||||
|
2. add support for far more fuel sources via AbstractFurnaceBlockEntity.getFuel() on top of built-in TARDIM method
|
||||||
|
3. Unify package names on Forge and Fabric
|
10
TODO
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
=== TODO ===
|
||||||
|
Doing every fucking thing over again
|
||||||
|
|
||||||
|
* Basics
|
||||||
|
* Registrate creative mode tab
|
||||||
|
* Registrate a single block. Any block will do
|
||||||
|
|
||||||
|
* Digital Interface for TARDIM
|
||||||
|
* Block
|
||||||
|
* Peripheral
|
196
build.gradle
|
@ -1,115 +1,101 @@
|
||||||
buildscript {
|
plugins {
|
||||||
|
id 'fabric-loom' version '1.3-SNAPSHOT' apply(false)
|
||||||
|
id 'net.neoforged.gradle' version '[6.0.18,6.2)' apply(false)
|
||||||
|
id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' apply(false)
|
||||||
|
id("org.spongepowered.mixin") version "0.7-SNAPSHOT" apply(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
subprojects {
|
||||||
|
apply plugin: 'java'
|
||||||
|
|
||||||
|
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||||
|
java.withSourcesJar()
|
||||||
|
java.withJavadocJar()
|
||||||
|
|
||||||
|
jar {
|
||||||
|
from(rootProject.file("LICENSE")) {
|
||||||
|
rename { "${it}_${mod_name}" }
|
||||||
|
}
|
||||||
|
manifest {
|
||||||
|
attributes([
|
||||||
|
'Specification-Title' : mod_name,
|
||||||
|
'Specification-Vendor' : mod_author,
|
||||||
|
'Specification-Version' : project.jar.archiveVersion,
|
||||||
|
'Implementation-Title' : project.name,
|
||||||
|
'Implementation-Version' : project.jar.archiveVersion,
|
||||||
|
'Implementation-Vendor' : mod_author,
|
||||||
|
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
|
||||||
|
'Timestamp' : System.currentTimeMillis(),
|
||||||
|
'Built-On-Java' : "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})",
|
||||||
|
'Built-On-Minecraft' : minecraft_version
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourcesJar {
|
||||||
|
from(rootProject.file("LICENSE")) {
|
||||||
|
rename { "${it}_${mod_name}" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = 'https://maven.minecraftforge.net' }
|
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
maven {
|
||||||
dependencies {
|
name = 'Sponge / Mixin'
|
||||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
|
url = 'https://repo.spongepowered.org/repository/maven-public/'
|
||||||
}
|
}
|
||||||
}
|
maven {
|
||||||
|
name = 'BlameJared Maven (JEI / CraftTweaker / Bookshelf)'
|
||||||
apply plugin: 'net.minecraftforge.gradle'
|
url = 'https://maven.blamejared.com'
|
||||||
|
|
||||||
group = project.group
|
|
||||||
version = project.version
|
|
||||||
archivesBaseName = project.archivesBaseName
|
|
||||||
|
|
||||||
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
|
||||||
|
|
||||||
minecraft {
|
|
||||||
mappings channel: 'official', version: "${mc_version}"
|
|
||||||
|
|
||||||
runs {
|
|
||||||
client {
|
|
||||||
workingDirectory project.file('run')
|
|
||||||
|
|
||||||
|
|
||||||
property 'forge.logging.markers', 'REGISTRIES'
|
|
||||||
|
|
||||||
// Recommended logging level for the console
|
|
||||||
// You can set various levels here.
|
|
||||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
|
||||||
property 'forge.logging.console.level', 'debug'
|
|
||||||
|
|
||||||
mods {
|
|
||||||
cctutorial {
|
|
||||||
source sourceSets.main
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
// CC: Tweaked
|
||||||
workingDirectory project.file('run')
|
maven {
|
||||||
|
url "https://squiddev.cc/maven/"
|
||||||
property 'forge.logging.markers', 'REGISTRIES'
|
content {
|
||||||
|
includeGroup("cc.tweaked")
|
||||||
// Recommended logging level for the console
|
includeModule("org.squiddev", "Cobalt")
|
||||||
// You can set various levels here.
|
|
||||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
|
||||||
property 'forge.logging.console.level', 'debug'
|
|
||||||
|
|
||||||
mods {
|
|
||||||
cctutorial {
|
|
||||||
source sourceSets.main
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Curseforge
|
||||||
data {
|
repositories {
|
||||||
workingDirectory project.file('run')
|
maven {
|
||||||
|
url "https://cursemaven.com"
|
||||||
property 'forge.logging.markers', 'REGISTRIES'
|
|
||||||
|
|
||||||
// Recommended logging level for the console
|
|
||||||
// You can set various levels here.
|
|
||||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
|
||||||
property 'forge.logging.console.level', 'debug'
|
|
||||||
|
|
||||||
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
|
|
||||||
args '--mod', 'tardim_ic', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
|
|
||||||
|
|
||||||
mods {
|
|
||||||
tardim_ic {
|
|
||||||
source sourceSets.main
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Create Fabric 1.20 (Jeez that's a lot of mavens)
|
||||||
|
// maven {
|
||||||
|
// name "devOSSnapshots"
|
||||||
|
// url "https://mvn.devos.one/snapshots"
|
||||||
|
// }
|
||||||
|
// maven {
|
||||||
|
// name "tterrag maven"
|
||||||
|
// url "https://maven.tterrag.com/"
|
||||||
|
// }
|
||||||
|
// maven {
|
||||||
|
// url "https://maven.jamieswhiteshirt.com/libs-release"
|
||||||
|
// content {
|
||||||
|
// includeGroup "com.jamieswhiteshirt"
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile).configureEach {
|
||||||
|
|
||||||
|
it.options.encoding = 'UTF-8'
|
||||||
|
it.options.getRelease().set(17)
|
||||||
|
}
|
||||||
|
|
||||||
|
processResources {
|
||||||
|
filesMatching(['pack.mcmeta', 'fabric.mod.json', 'mods.toml', '*.mixins.json']) {
|
||||||
|
expand project.properties
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disables Gradle's custom module metadata from being published to maven. The
|
||||||
|
// metadata includes mapped dependencies which are not reasonably consumable by
|
||||||
|
// other mod developers.
|
||||||
|
tasks.withType(GenerateModuleMetadata).configureEach {
|
||||||
|
enabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Include resources generated by data generators.
|
|
||||||
sourceSets.main.resources { srcDir 'src/generated/resources' }
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven { url 'https://squiddev.cc/maven/' }
|
|
||||||
|
|
||||||
maven { url "https://cursemaven.com"}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
|
|
||||||
// that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
|
|
||||||
// The userdev artifact is a special name and will get all sorts of transformations applied to it.
|
|
||||||
minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
|
|
||||||
|
|
||||||
implementation fg.deobf("curse.maven:tardim-531315:3983700")
|
|
||||||
implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}")
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Example for how to get properties into the manifest for reading by the runtime..
|
|
||||||
jar {
|
|
||||||
manifest {
|
|
||||||
attributes([
|
|
||||||
"Specification-Title" : "tardim_ic",
|
|
||||||
//"Specification-Vendor": "tardim_ic authors",
|
|
||||||
"Specification-Version" : "1", // We are version 1 of ourselves
|
|
||||||
"Implementation-Title" : project.name,
|
|
||||||
"Implementation-Version" : project.version,
|
|
||||||
//"Implementation-Vendor": "tardim_ic authors",
|
|
||||||
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
|
||||||
])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jar.finalizedBy('reobfJar')
|
|
||||||
|
|
39
common/build.gradle
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
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")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
common/src/main/java/su/a71/tardim_ic/Constants.java
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
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);
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package su.a71.tardim_ic.command;
|
||||||
|
|
||||||
|
import com.swdteam.tardim.common.command.tardim.CommandTardimBase;
|
||||||
|
import com.swdteam.tardim.common.command.tardim.ICommand;
|
||||||
|
import com.swdteam.tardim.tardim.TardimData;
|
||||||
|
import com.swdteam.tardim.tardim.TardimManager;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
|
||||||
|
/*
|
||||||
|
This command prints list of all dimensions into the console to find technical names
|
||||||
|
*/
|
||||||
|
public class CommandListDimensions implements ICommand{
|
||||||
|
@Override
|
||||||
|
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||||
|
if (args.length == 0) {
|
||||||
|
TardimData data = TardimManager.getFromPos(pos);
|
||||||
|
if (data != null) {
|
||||||
|
if (data.hasPermission(player)) {
|
||||||
|
for (ServerLevel serverLevel : player.level().getServer().getAllLevels()) {
|
||||||
|
CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandName() {
|
||||||
|
return "list-dimensions";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUsage() {
|
||||||
|
return "/list-dimensions";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommandTardimBase.CommandSource allowedSource() {
|
||||||
|
return CommandTardimBase.CommandSource.BOTH;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,24 +1,28 @@
|
||||||
package su.a71.tardim_ic.tardim_ic.command;
|
package su.a71.tardim_ic.command;
|
||||||
|
|
||||||
// This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public
|
// 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 com.mojang.brigadier.Command;
|
|
||||||
import com.swdteam.common.command.tardim.CommandTardimBase;
|
|
||||||
import com.swdteam.common.command.tardim.ICommand;
|
|
||||||
import com.swdteam.tardim.TardimData;
|
|
||||||
import com.swdteam.tardim.TardimManager;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
|
||||||
import dan200.computercraft.api.network.Packet;
|
/*
|
||||||
import dan200.computercraft.api.ComputerCraftAPI;
|
This command sends out a ComputerCraft modem signal
|
||||||
|
This could be useful for connecting advanced navigation systems into "vanilla" controls
|
||||||
import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse;
|
You can specify both channels, message and even make the message go across dimensions
|
||||||
|
*/
|
||||||
public class CommandModemTransmit implements ICommand {
|
public class CommandModemTransmit implements ICommand {
|
||||||
@Override
|
@Override
|
||||||
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) {
|
||||||
if (args.length == 3) {
|
if (args.length == 3) { // TODO: 3 or 4???
|
||||||
TardimData data = TardimManager.getFromPos(pos);
|
TardimData data = TardimManager.getFromPos(pos);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
if (data.hasPermission(player)) {
|
if (data.hasPermission(player)) {
|
||||||
|
@ -34,33 +38,33 @@ public class CommandModemTransmit implements ICommand {
|
||||||
|
|
||||||
if (allDimensions)
|
if (allDimensions)
|
||||||
{
|
{
|
||||||
ComputerCraftAPI.getWirelessNetwork().transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos())));
|
ComputerCraftAPI.getWirelessNetwork(player.getServer()).transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos())));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message,
|
ComputerCraftAPI.getWirelessNetwork(player.getServer()).transmitSameDimension(new Packet(sendChannel, replyChannel, message,
|
||||||
new CommandSender(player, data.getTravelLocation().getPos())), 300);
|
new CommandSender(player, data.getTravelLocation().getPos())), 300);
|
||||||
}
|
}
|
||||||
sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source);
|
CommandTardimBase.sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source);
|
||||||
} catch (Exception var9) {
|
} catch (Exception var9) {
|
||||||
sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source);
|
CommandTardimBase.sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getCommandName() {
|
public String getCommandName() {
|
||||||
return "ccModemTransmit";
|
return "cc-modem-transmit";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUsage() {
|
public String getUsage() {
|
||||||
return "ccModemTransmit <channel: int> <replyChannel: int> <message: string> <all_dimension: true/false>";
|
return "/cc-modem-transmit <Chnl> <replyChnl> <msg> <ender: bool>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -1,14 +1,13 @@
|
||||||
package su.a71.tardim_ic.tardim_ic.command;
|
package su.a71.tardim_ic.command;
|
||||||
|
|
||||||
import dan200.computercraft.api.network.IPacketSender;
|
import dan200.computercraft.api.network.PacketSender;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.resources.ResourceKey;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class CommandSender implements IPacketSender {
|
public class CommandSender implements PacketSender {
|
||||||
|
|
||||||
private final Player player;
|
private final Player player;
|
||||||
private final Level level;
|
private final Level level;
|
||||||
|
@ -16,7 +15,7 @@ public class CommandSender implements IPacketSender {
|
||||||
|
|
||||||
CommandSender(Player player, BlockPos pos) {
|
CommandSender(Player player, BlockPos pos) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.level = player.level;
|
this.level = player.level();
|
||||||
this.pos = pos;
|
this.pos = pos;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
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();
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,144 @@
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
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()
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
58
common/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
//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);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//}
|
25
common/src/main/java/su/a71/tardim_ic/platform/Services.java
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
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";
|
||||||
|
}
|
||||||
|
}
|
34
common/src/main/java/su/a71/tardim_ic/utils/FakePlayer.java
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 437 B |
After Width: | Height: | Size: 437 B |
After Width: | Height: | Size: 437 B |
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"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}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"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}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,124 @@
|
||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_floor" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_roof" }
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
10
common/src/main/resources/assets/tardim_ic/lang/en_uk.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
10
common/src/main/resources/assets/tardim_ic/lang/en_us.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
8
common/src/main/resources/assets/tardim_ic/lang/rpr.json
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"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": "Звукъ временного колокола"
|
||||||
|
}
|
10
common/src/main/resources/assets/tardim_ic/lang/ru_ru.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
|
@ -0,0 +1,213 @@
|
||||||
|
{
|
||||||
|
"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]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,104 @@
|
||||||
|
{
|
||||||
|
"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]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"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"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,198 @@
|
||||||
|
{
|
||||||
|
"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]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,279 @@
|
||||||
|
{
|
||||||
|
"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]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,279 @@
|
||||||
|
{
|
||||||
|
"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]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
{
|
||||||
|
"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]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"credit": "Made by karoter2",
|
||||||
|
"texture_size": [64, 64],
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"name": "group",
|
||||||
|
"origin": [0, 0, 0],
|
||||||
|
"color": 0,
|
||||||
|
"nbt": "{}",
|
||||||
|
"children": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"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"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"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"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
{
|
||||||
|
"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"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"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"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"parent": "tardim_ic:block/food_machine",
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [ 75, 45, 0 ],
|
||||||
|
"scale": [ 0.40, 0.40, 0.40 ],
|
||||||
|
"translation": [ 0, 1, 0 ]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [ 75, 45, 0 ],
|
||||||
|
"scale": [ 0.40, 0.40, 0.40 ],
|
||||||
|
"translation": [ 0, 1, 0 ]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [ 0, 45, 0 ],
|
||||||
|
"scale": [ 0.40, 0.40, 0.40 ]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [ 0, 45, 0 ],
|
||||||
|
"scale": [ 0.40, 0.40, 0.40 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "tardim_ic:item/personal_jammer"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"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 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
common/src/main/resources/assets/tardim_ic/sounds.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"cloister": {
|
||||||
|
"subtitle": "subtitles.tardim_ic.cloister",
|
||||||
|
"sounds": [
|
||||||
|
"tardim_ic:cloister"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
BIN
common/src/main/resources/assets/tardim_ic/sounds/cloister.ogg
Normal file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 927 B After Width: | Height: | Size: 927 B |
After Width: | Height: | Size: 923 B |
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"animation": {
|
||||||
|
"frametime": 10,
|
||||||
|
"interpolate": true,
|
||||||
|
"frames": [0, 1, 2, 3]
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 163 B |
After Width: | Height: | Size: 216 B |
After Width: | Height: | Size: 361 B |
After Width: | Height: | Size: 248 B |
After Width: | Height: | Size: 382 B |
|
@ -0,0 +1,5 @@
|
||||||
|
--[[
|
||||||
|
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
|
||||||
|
]
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- 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())
|
6
common/src/main/resources/pack.mcmeta
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"pack": {
|
||||||
|
"description": "${mod_name}",
|
||||||
|
"pack_format": 8
|
||||||
|
}
|
||||||
|
}
|
13
common/src/main/resources/tardim_ic.mixins.json
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"required": true,
|
||||||
|
"minVersion": "0.8",
|
||||||
|
"package": "su.a71.tardim_ic.mixin",
|
||||||
|
"refmap": "${mod_id}.refmap.json",
|
||||||
|
"compatibilityLevel": "JAVA_17",
|
||||||
|
"mixins": [
|
||||||
|
],
|
||||||
|
"injectors": {
|
||||||
|
"defaultRequire": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
BIN
common/tardim-1.2.2-dev.jar
Normal file
BIN
docs/assets/img/banner.png
Normal file
After Width: | Height: | Size: 465 KiB |
BIN
docs/assets/img/banner_narrow.png
Normal file
After Width: | Height: | Size: 421 KiB |
BIN
docs/assets/img/blocks/cartridge_blue.png
Normal file
After Width: | Height: | Size: 361 B |
BIN
docs/assets/img/blocks/digital_tardim_interface.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
docs/assets/img/blocks/food_machine.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
docs/assets/img/blocks/fuel_storage.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
docs/assets/img/blocks/jammer.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
docs/assets/img/blocks/redstone_tardim_input.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/assets/img/blocks/rotor.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/assets/img/blocks/scanner.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
docs/assets/img/blocks/tardim_dock.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/assets/img/crafting/digital_interface.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/assets/img/crafting/redstone_input.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/assets/img/icon.png
Normal file
After Width: | Height: | Size: 58 KiB |
42
docs/assets/style.css
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'ComputerCraft';
|
||||||
|
src: url('fonts/ComputerCraft.woff2') format('woff2'),
|
||||||
|
url('fonts/ComputerCraft.woff') format('woff');
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: ComputerCraft, monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search {
|
||||||
|
background-color: #d2651d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search input[type="text"] {
|
||||||
|
border-color: #d96b25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wy-menu-vertical header, .wy-menu-vertical p.caption {
|
||||||
|
color: #e78e53;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section > h1 > img {
|
||||||
|
max-width: 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.rst-content img {
|
||||||
|
image-rendering: pixelated;
|
||||||
|
image-rendering: -moz-crisp-edges;
|
||||||
|
image-rendering: crisp-edges;
|
||||||
|
width: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.section > p:nth-child(5) > img:nth-child(1), .section > p:nth-child(4) > img:nth-child(1) {
|
||||||
|
max-width: 100%;
|
||||||
|
width: 75%;
|
||||||
|
}
|
7
docs/blocks/food_machine.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#  Food Machine
|
||||||
|
This block lets you exchange some of your TARDIM's fuel for food.
|
||||||
|
|
||||||
|
I plan to make it work with datapacks and let you switch between different types of food at different prices.
|
||||||
|
|
||||||
|
However, right now it is creative mode only and dispenses bread. If you want, you can add crafting recipe for it on your own,
|
||||||
|
but it is not recommended since I haven't finished it yet
|
5
docs/blocks/redstone_input.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#  Redstone TARDIM Input
|
||||||
|
This block acts same as other TARDIM control panels, but is activated when redstone signal is passed to it.
|
||||||
|
|
||||||
|
## Crafting
|
||||||
|

|