More machine coloring

This commit is contained in:
DBotThePony 2024-01-04 13:40:40 +07:00
parent 9d876c573c
commit 9ecf53342e
Signed by: DBot
GPG Key ID: DCC23B5715498507
236 changed files with 395 additions and 611 deletions

View File

@ -516,8 +516,10 @@ object DataGen {
event.generator.addProvider(event.includeServer(), blockStateProvider) event.generator.addProvider(event.includeServer(), blockStateProvider)
event.generator.addProvider(event.includeClient(), itemModelProvider) event.generator.addProvider(event.includeClient(), itemModelProvider)
event.generator.addProvider(event.includeServer(), recipeProvider) event.generator.addProvider(event.includeServer(), recipeProvider)
event.generator.addProvider(event.includeClient(), MatterBankProvider(event)) DyeColor.entries.forEach { event.generator.addProvider(event.includeClient(), MatterBankProvider(event, it)) }
event.generator.addProvider(event.includeClient(), BatteryBankProvider(event)) event.generator.addProvider(event.includeClient(), MatterBankProvider(event, null))
DyeColor.entries.forEach { event.generator.addProvider(event.includeClient(), BatteryBankProvider(event, it)) }
event.generator.addProvider(event.includeClient(), BatteryBankProvider(event, null))
event.generator.addProvider(event.includeServer(), lootTableProvider) event.generator.addProvider(event.includeServer(), lootTableProvider)
event.generator.addProvider(event.includeServer(), lootModifier) event.generator.addProvider(event.includeServer(), lootModifier)
event.generator.addProvider(event.includeServer(), SoundDataProvider(event)) event.generator.addProvider(event.includeServer(), SoundDataProvider(event))

View File

@ -102,30 +102,30 @@ fun addMachineAdvancements(serializer: Consumer<AdvancementHolder>, lang: Matter
CraftEntry(MItems.TWIN_PLATE_PRESS.values, "Twice the Thud", CraftEntry(MItems.TWIN_PLATE_PRESS.values, "Twice the Thud",
russianName = "Двойной стук").make(serializer, press, translation) russianName = "Двойной стук").make(serializer, press, translation)
val scanner = CraftEntry(MItems.MATTER_SCANNER, "Scanning Things that Matter", val scanner = CraftEntry(MItems.MATTER_SCANNER.values, "Scanning Things that Matter",
russianName = "Сканируем вещи которые материальны") russianName = "Сканируем вещи которые материальны")
val decomposer = CraftEntry(MItems.MATTER_DECOMPOSER, "Decaying the Atoms", "Keep your limbs outside of the working chamber at all times", val decomposer = CraftEntry(MItems.MATTER_DECOMPOSER.values, "Decaying the Atoms", "Keep your limbs outside of the working chamber at all times",
russianName = "Разлагаем атомы", russianSuffix = "Во всех ситуациях держите свои конечности вне рабочей камеры") russianName = "Разлагаем атомы", russianSuffix = "Во всех ситуациях держите свои конечности вне рабочей камеры")
val panel = CraftEntry(MItems.MATTER_PANEL, "Indexing the Library", val panel = CraftEntry(MItems.MATTER_PANEL, "Indexing the Library",
russianName = "Индексируем библиотеку") russianName = "Индексируем библиотеку")
val replicator = CraftEntry(MItems.MATTER_REPLICATOR, "Cook with (Im)Perfection", "Now let's bake some perfect bread", val replicator = CraftEntry(MItems.MATTER_REPLICATOR.values, "Cook with (Im)Perfection", "Now let's bake some perfect bread",
russianName = "Повар с (не) идеальностями", russianSuffix = "А теперь давайте выпечем немного идеального хлеба") russianName = "Повар с (не) идеальностями", russianSuffix = "А теперь давайте выпечем немного идеального хлеба")
val bottler = CraftEntry(MItems.MATTER_BOTTLER, "Transfusing Pure Matter", "For those who loved to play with water in their childhood", val bottler = CraftEntry(MItems.MATTER_BOTTLER.values, "Transfusing Pure Matter", "For those who loved to play with water in their childhood",
russianName = "Переливаем чистую материю", russianSuffix = "Для тех, кто любил играться в воде в детстве") russianName = "Переливаем чистую материю", russianSuffix = "Для тех, кто любил играться в воде в детстве")
val recycler = CraftEntry(MItems.MATTER_RECYCLER, "Refine and Redefine", "This is what waste recycling should look like", val recycler = CraftEntry(MItems.MATTER_RECYCLER, "Refine and Redefine", "This is what waste recycling should look like",
russianName = "Переработка и перегонка", russianSuffix = "Вот он, пик переработки отходов") russianName = "Переработка и перегонка", russianSuffix = "Вот он, пик переработки отходов")
val capacitor = CraftEntry(MItems.MATTER_CAPACITOR_BANK, "Modular Matter Tank", val capacitor = CraftEntry(MItems.MATTER_CAPACITOR_BANK.values, "Modular Matter Tank",
russianName = "Модульный бак материи") russianName = "Модульный бак материи")
val counter = CraftEntry(MItems.ENERGY_COUNTER, "Visualize Power Burn", val counter = CraftEntry(MItems.ENERGY_COUNTER, "Visualize Power Burn",
russianName = "Визуализация сжигания энергии") russianName = "Визуализация сжигания энергии")
val battery = CraftEntry(MItems.BATTERY_BANK, "Batteries Not Included", "By all means avoid the urge to hammer incompatible batteries into the power bus.", val battery = CraftEntry(MItems.BATTERY_BANK.values, "Batteries Not Included", "By all means avoid the urge to hammer incompatible batteries into the power bus.",
russianName = "Батарейки в комплект не входят", russianSuffix = "Пожалуйста, воздержитесь от вбивания кувалдой несовместимых батарей в энергетическую шину.") russianName = "Батарейки в комплект не входят", russianSuffix = "Пожалуйста, воздержитесь от вбивания кувалдой несовместимых батарей в энергетическую шину.")
val pattern = CraftEntry(MItems.PATTERN_STORAGE, "Digital Knowledge Library", val pattern = CraftEntry(MItems.PATTERN_STORAGE, "Digital Knowledge Library",
russianName = "Цифровая библиотека знаний") russianName = "Цифровая библиотека знаний")
val reconstructor = CraftEntry(MItems.MATTER_RECONSTRUCTOR, "Flipping Hourglass", val reconstructor = CraftEntry(MItems.MATTER_RECONSTRUCTOR.values, "Flipping Hourglass",
russianName = "Переворачиваем песочные часы") russianName = "Переворачиваем песочные часы")
decomposer.make(serializer, press, translation).also { decomposer.make(serializer, press, translation).also {

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.datagen.blocks package ru.dbotthepony.mc.otm.datagen.blocks
import net.minecraft.world.item.DyeColor
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
import net.minecraftforge.client.model.generators.BlockStateProvider import net.minecraftforge.client.model.generators.BlockStateProvider
import net.minecraftforge.client.model.generators.ConfiguredModel import net.minecraftforge.client.model.generators.ConfiguredModel
@ -18,16 +19,16 @@ private fun nothingOrNumber(input: Int): String {
return (input - 1).toString() return (input - 1).toString()
} }
open class BatteryBankProvider(event: GatherDataEvent) : BlockStateProvider(event.generator.packOutput, DataGen.MOD_ID, event.existingFileHelper) { open class BatteryBankProvider(event: GatherDataEvent, val color: DyeColor?) : BlockStateProvider(event.generator.packOutput, DataGen.MOD_ID, event.existingFileHelper) {
protected var block = "battery_bank" protected var block = "battery_bank"
protected var batteryPath = "block/battery/battery" protected var batteryPath = "block/battery/battery"
protected var registry: Block = MBlocks.BATTERY_BANK protected var registry: Block = MBlocks.BATTERY_BANK[color]!!
override fun registerStatesAndModels() { override fun registerStatesAndModels() {
with(getVariantBuilder(registry)) { with(getVariantBuilder(registry)) {
forAllStates { forAllStates {
ConfiguredModel.builder() ConfiguredModel.builder()
.modelFile(models().getExistingFile(modLocation("block/$block"))) .modelFile(models().getExistingFile(modLocation("block/$block${if (color != null) "_${color.name.lowercase()}" else ""}")))
.rotationY(it[BlockRotationFreedom.HORIZONTAL.property].front.yRotationBlockstateNorth()) .rotationY(it[BlockRotationFreedom.HORIZONTAL.property].front.yRotationBlockstateNorth())
.build() .build()
} }
@ -35,18 +36,18 @@ open class BatteryBankProvider(event: GatherDataEvent) : BlockStateProvider(even
} }
override fun getName(): String { override fun getName(): String {
return "Battery Bank Model Provider" return "Battery Bank Model Provider for color $color"
} }
} }
class MatterBankProvider(event: GatherDataEvent) : BatteryBankProvider(event) { class MatterBankProvider(event: GatherDataEvent, color: DyeColor?) : BatteryBankProvider(event, color) {
init { init {
block = "matter_capacitor_bank" block = "matter_capacitor_bank"
batteryPath = "block/battery/matter_capacitor" batteryPath = "block/battery/matter_capacitor"
registry = MBlocks.MATTER_CAPACITOR_BANK registry = MBlocks.MATTER_CAPACITOR_BANK[color]!!
} }
override fun getName(): String { override fun getName(): String {
return "Matter Bank Model Provider" return "Matter Bank Model Provider for color $color"
} }
} }

View File

@ -12,8 +12,21 @@ fun addBlockModels(provider: MatteryBlockModelProvider) {
coloredMachine(MBlocks.COBBLESTONE_GENERATOR, listOf("0", "particle")) coloredMachine(MBlocks.COBBLESTONE_GENERATOR, listOf("0", "particle"))
coloredMachine(MBlocks.ESSENCE_STORAGE, listOf("0", "particle")) coloredMachine(MBlocks.ESSENCE_STORAGE, listOf("0", "particle"))
coloredMachine(MBlocks.ITEM_MONITOR, listOf("0", "particle"))
coloredMachine(MBlocks.MATTER_RECONSTRUCTOR, listOf("0", "particle"))
colored("matter_capacitor_bank", mapOf("1" to "mattercapacitorbank_frame", "particle" to "mattercapacitorbank_frame"))
colored("battery_bank", mapOf("1" to "batterybank_frame", "particle" to "batterybank_frame"))
coloredMachineCombined("plate_press", "plate_press2", listOf("idle", "error", "working"), listOf("0", "particle")) coloredMachineCombined("plate_press", "plate_press2", listOf("idle", "error", "working"), listOf("0", "particle"))
coloredMachineCombined("twin_plate_press", "plate_press2", listOf("idle", "error", "working"), listOf("0", "particle")) coloredMachineCombined("twin_plate_press", "plate_press2", listOf("idle", "error", "working"), listOf("0", "particle"))
coloredMachineCombined("matter_recycler", "matter_recycler", listOf("idle", "error", "working"), listOf("0", "particle"))
coloredMachineCombined("matter_scanner", "matter_scanner", listOf("idle", "error", "working"), listOf("texture", "particle"))
coloredMachineCombined("matter_bottler", "matter_bottler", listOf("idle", "error", "working"), listOf("texture", "particle"))
coloredMachineCombined("matter_decomposer", "matter_decomposer", listOf("idle", "error", "working"), listOf("texture", "particle"))
colored("matter_replicator", "idle", mapOf("1" to "matter_replicator_base", "particle" to "matter_replicator_base", "texture" to "matter_replicator_offline"))
colored("matter_replicator", "error", mapOf("1" to "matter_replicator_base", "particle" to "matter_replicator_base", "texture" to "matter_replicator_halted"))
colored("matter_replicator", "working", mapOf("1" to "matter_replicator_base", "particle" to "matter_replicator_base", "texture" to "matter_replicator"))
} }
} }

View File

@ -30,8 +30,8 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
provider.block(MBlocks.METAL_MESH) provider.block(MBlocks.METAL_MESH)
provider.block(MBlocks.CHEMICAL_GENERATOR) provider.block(MBlocks.CHEMICAL_GENERATOR)
provider.block(MBlocks.MATTER_SCANNER) provider.block(MBlocks.MATTER_SCANNER.values)
provider.block(MBlocks.ITEM_MONITOR) provider.block(MBlocks.ITEM_MONITOR.values)
provider.block(MBlocks.HOLO_SIGN) provider.block(MBlocks.HOLO_SIGN)
provider.exec { provider.exec {
@ -59,40 +59,42 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
} }
} }
with(provider.getMultipartBuilder(MBlocks.MATTER_BOTTLER)) { for (block in MBlocks.MATTER_BOTTLER.values) {
for (dir in BlockRotationFreedom.HORIZONTAL.possibleValues) { with(provider.getMultipartBuilder(block)) {
for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) { for (dir in BlockRotationFreedom.HORIZONTAL.possibleValues) {
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name.lowercase()}"))) for (enum in WorkerState.SEMI_WORKER_STATE.possibleValues) {
.rotationY(dir.front.yRotationBlockstateNorth()) part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name.lowercase()}")))
.addModel() .rotationY(dir.front.yRotationBlockstateNorth())
.condition(BlockRotationFreedom.HORIZONTAL.property, dir) .addModel()
.condition(WorkerState.WORKER_STATE, enum) .condition(BlockRotationFreedom.HORIZONTAL.property, dir)
.end() .condition(WorkerState.WORKER_STATE, enum)
.end()
}
} }
}
for (dir in BlockRotationFreedom.HORIZONTAL.possibleValues) { for (dir in BlockRotationFreedom.HORIZONTAL.possibleValues) {
for (enum in MatterBottlerBlock.SLOT_PROPERTIES) { for (enum in MatterBottlerBlock.SLOT_PROPERTIES) {
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_open"))) part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_open")))
.rotationY(dir.front.yRotationBlockstateNorth()) .rotationY(dir.front.yRotationBlockstateNorth())
.addModel() .addModel()
.condition(BlockRotationFreedom.HORIZONTAL.property, dir) .condition(BlockRotationFreedom.HORIZONTAL.property, dir)
.condition(enum, false) .condition(enum, false)
.end() .end()
part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_closed"))) part().modelFile(provider.models().getExistingFile(modLocation("matter_bottler_${enum.name}_closed")))
.rotationY(dir.front.yRotationBlockstateNorth()) .rotationY(dir.front.yRotationBlockstateNorth())
.addModel() .addModel()
.condition(BlockRotationFreedom.HORIZONTAL.property, dir) .condition(BlockRotationFreedom.HORIZONTAL.property, dir)
.condition(enum, true) .condition(enum, true)
.end() .end()
}
} }
} }
} }
} }
provider.block(MBlocks.MATTER_DECOMPOSER) provider.block(MBlocks.MATTER_DECOMPOSER.values)
provider.block(MBlocks.MATTER_REPLICATOR) provider.block(MBlocks.MATTER_REPLICATOR.values)
provider.block(MBlocks.PLATE_PRESS.values) provider.block(MBlocks.PLATE_PRESS.values)
provider.block(MBlocks.TWIN_PLATE_PRESS.values) provider.block(MBlocks.TWIN_PLATE_PRESS.values)
provider.block(MBlocks.GRAVITATION_STABILIZER) provider.block(MBlocks.GRAVITATION_STABILIZER)
@ -104,7 +106,7 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
provider.block(MBlocks.STORAGE_POWER_SUPPLIER) provider.block(MBlocks.STORAGE_POWER_SUPPLIER)
provider.block(MBlocks.MATTER_RECYCLER) provider.block(MBlocks.MATTER_RECYCLER)
provider.block(MBlocks.MATTER_RECONSTRUCTOR) provider.block(MBlocks.MATTER_RECONSTRUCTOR.values)
provider.block(MBlocks.ENERGY_SERVO) provider.block(MBlocks.ENERGY_SERVO)
provider.block(MBlocks.COBBLESTONE_GENERATOR.values) provider.block(MBlocks.COBBLESTONE_GENERATOR.values)
provider.block(MBlocks.ESSENCE_STORAGE.values) provider.block(MBlocks.ESSENCE_STORAGE.values)

View File

@ -8,8 +8,8 @@ import ru.dbotthepony.mc.otm.registry.MRegistry
fun addItemModels(provider: MatteryItemModelProvider) { fun addItemModels(provider: MatteryItemModelProvider) {
provider.block(MItems.ANDROID_STATION, "android_station_working") provider.block(MItems.ANDROID_STATION, "android_station_working")
provider.block(MItems.BATTERY_BANK) provider.coloredWithBaseBlock(MItems.BATTERY_BANK, "matter_capacitor_bank")
provider.block(MItems.MATTER_CAPACITOR_BANK) provider.coloredWithBaseBlock(MItems.MATTER_CAPACITOR_BANK, "matter_capacitor_bank")
provider.block(MItems.PATTERN_STORAGE) provider.block(MItems.PATTERN_STORAGE)
provider.exec { provider.exec {
@ -28,7 +28,7 @@ fun addItemModels(provider: MatteryItemModelProvider) {
provider.block(MItems.TRITANIUM_STRIPED_BLOCK) provider.block(MItems.TRITANIUM_STRIPED_BLOCK)
provider.block(MItems.TRITANIUM_RAW_BLOCK) provider.block(MItems.TRITANIUM_RAW_BLOCK)
provider.block(MItems.TRITANIUM_INGOT_BLOCK) provider.block(MItems.TRITANIUM_INGOT_BLOCK)
provider.block(MItems.ITEM_MONITOR) provider.coloredWithBaseBlock(MItems.ITEM_MONITOR, "item_monitor")
provider.block(MItems.PHANTOM_ATTRACTOR) provider.block(MItems.PHANTOM_ATTRACTOR)
provider.block(MItems.HOLO_SIGN) provider.block(MItems.HOLO_SIGN)
@ -168,12 +168,14 @@ fun addItemModels(provider: MatteryItemModelProvider) {
provider.block(MItems.CHEMICAL_GENERATOR, "chemical_generator_working") provider.block(MItems.CHEMICAL_GENERATOR, "chemical_generator_working")
provider.block(MItems.ENERGY_COUNTER, "energy_counter_down") provider.block(MItems.ENERGY_COUNTER, "energy_counter_down")
provider.block(MItems.MATTER_BOTTLER, "matter_bottler_working") provider.coloredWithBaseBlock(MItems.MATTER_BOTTLER, "matter_bottler", "_idle")
provider.coloredWithBaseBlock(MItems.MATTER_SCANNER, "matter_scanner", "_idle")
provider.coloredWithBaseBlock(MItems.MATTER_REPLICATOR, "matter_replicator", "_idle")
provider.block(MItems.MATTER_CABLE, "matter_cable_core") provider.block(MItems.MATTER_CABLE, "matter_cable_core")
provider.block(MItems.MATTER_DECOMPOSER, "matter_decomposer_working") provider.coloredWithBaseBlock(MItems.MATTER_DECOMPOSER, "matter_decomposer", "_idle")
provider.block(MItems.ENERGY_SERVO, "energy_servo") provider.block(MItems.ENERGY_SERVO, "energy_servo")
provider.coloredWithBaseBlock(MItems.ESSENCE_STORAGE, "essence_storage") provider.coloredWithBaseBlock(MItems.ESSENCE_STORAGE, "essence_storage")
provider.block(MItems.MATTER_RECONSTRUCTOR, "matter_reconstructor") provider.coloredWithBaseBlock(MItems.MATTER_RECONSTRUCTOR, "matter_reconstructor")
provider.block(MItems.POWERED_BLAST_FURNACE, "powered_blast_furnace_working") provider.block(MItems.POWERED_BLAST_FURNACE, "powered_blast_furnace_working")
provider.block(MItems.POWERED_FURNACE, "powered_furnace_working") provider.block(MItems.POWERED_FURNACE, "powered_furnace_working")

View File

@ -417,23 +417,23 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.ANDROID_STATION, "Android Station") add(MBlocks.ANDROID_STATION, "Android Station")
add(MBlocks.ANDROID_CHARGER, "Wireless Charger") add(MBlocks.ANDROID_CHARGER, "Wireless Charger")
add(MBlocks.ANDROID_CHARGER, "desc", "Charges nearby androids and exopacks") add(MBlocks.ANDROID_CHARGER, "desc", "Charges nearby androids and exopacks")
add(MBlocks.BATTERY_BANK, "Battery Bank") addBlock(MBlocks.BATTERY_BANK.values, "Battery Bank")
add(MBlocks.MATTER_DECOMPOSER, "Matter Decomposer") addBlock(MBlocks.MATTER_DECOMPOSER.values, "Matter Decomposer")
add(MBlocks.MATTER_CAPACITOR_BANK, "Matter Capacitor Bank") addBlock(MBlocks.MATTER_CAPACITOR_BANK.values, "Matter Capacitor Bank")
add(MBlocks.MATTER_CABLE, "Matter Network Cable") add(MBlocks.MATTER_CABLE, "Matter Network Cable")
add(MBlocks.PATTERN_STORAGE, "Pattern Storage") add(MBlocks.PATTERN_STORAGE, "Pattern Storage")
add(MBlocks.MATTER_SCANNER, "Matter Scanner") addBlock(MBlocks.MATTER_SCANNER.values, "Matter Scanner")
add(MBlocks.MATTER_PANEL, "Pattern Monitor") add(MBlocks.MATTER_PANEL, "Pattern Monitor")
add(MBlocks.MATTER_REPLICATOR, "Matter Replicator") addBlock(MBlocks.MATTER_REPLICATOR.values, "Matter Replicator")
add(MBlocks.MATTER_BOTTLER, "Matter Bottler") addBlock(MBlocks.MATTER_BOTTLER.values, "Matter Bottler")
add(MBlocks.DRIVE_VIEWER, "Drive Viewer") add(MBlocks.DRIVE_VIEWER, "Drive Viewer")
add(MBlocks.BLACK_HOLE, "Local Anomalous Spacetime Dilation Singular Point") add(MBlocks.BLACK_HOLE, "Local Anomalous Spacetime Dilation Singular Point")
addBlock(MBlocks.COBBLESTONE_GENERATOR.values, "Cobblestone Generator") addBlock(MBlocks.COBBLESTONE_GENERATOR.values, "Cobblestone Generator")
add(MBlocks.INFINITE_WATER_SOURCE, "Infinite Water Source") add(MBlocks.INFINITE_WATER_SOURCE, "Infinite Water Source")
addBlock(MBlocks.ESSENCE_STORAGE.values, "Essence Storage") addBlock(MBlocks.ESSENCE_STORAGE.values, "Essence Storage")
addBlock(MBlocks.ESSENCE_STORAGE.values, "desc", "Allows to store and retrieve experience levels") addBlock(MBlocks.ESSENCE_STORAGE.values, "desc", "Allows to store and retrieve experience levels")
add(MBlocks.MATTER_RECONSTRUCTOR, "Matter Reconstructor") addBlock(MBlocks.MATTER_RECONSTRUCTOR.values, "Matter Reconstructor")
add(MBlocks.MATTER_RECONSTRUCTOR, "desc", "Repairs tools using matter") addBlock(MBlocks.MATTER_RECONSTRUCTOR.values, "desc", "Repairs tools using matter")
add(MBlocks.DEV_CHEST, "Dev Chest") add(MBlocks.DEV_CHEST, "Dev Chest")
add(MBlocks.DEV_CHEST, "desc", "Contains all items present in game") add(MBlocks.DEV_CHEST, "desc", "Contains all items present in game")
add(MBlocks.PAINTER, "Painting Table") add(MBlocks.PAINTER, "Painting Table")
@ -458,7 +458,7 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.CHEMICAL_GENERATOR, "Chemical Generator") add(MBlocks.CHEMICAL_GENERATOR, "Chemical Generator")
add(MBlocks.DRIVE_RACK, "Condensation Drive Rack") add(MBlocks.DRIVE_RACK, "Condensation Drive Rack")
add(MBlocks.ITEM_MONITOR, "Item Monitor") addBlock(MBlocks.ITEM_MONITOR.values, "Item Monitor")
addBlock(MBlocks.PLATE_PRESS.values, "Plate Press") addBlock(MBlocks.PLATE_PRESS.values, "Plate Press")
addBlock(MBlocks.TWIN_PLATE_PRESS.values, "Twin Plate Press") addBlock(MBlocks.TWIN_PLATE_PRESS.values, "Twin Plate Press")

View File

@ -419,23 +419,23 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.ANDROID_STATION, "Станция андроидов") add(MBlocks.ANDROID_STATION, "Станция андроидов")
add(MBlocks.ANDROID_CHARGER, "Беспроводной зарядник") add(MBlocks.ANDROID_CHARGER, "Беспроводной зарядник")
add(MBlocks.ANDROID_CHARGER, "desc", "Заряжает ближайших андроидов и экзопаки") add(MBlocks.ANDROID_CHARGER, "desc", "Заряжает ближайших андроидов и экзопаки")
add(MBlocks.BATTERY_BANK, "Банк аккумуляторов") addBlock(MBlocks.BATTERY_BANK.values, "Банк аккумуляторов")
add(MBlocks.MATTER_DECOMPOSER, "Декомпозитор материи") addBlock(MBlocks.MATTER_DECOMPOSER.values, "Декомпозитор материи")
add(MBlocks.MATTER_CAPACITOR_BANK, "Банк накопителей материи") addBlock(MBlocks.MATTER_CAPACITOR_BANK.values, "Банк накопителей материи")
add(MBlocks.MATTER_CABLE, "Кабель сети материи") add(MBlocks.MATTER_CABLE, "Кабель сети материи")
add(MBlocks.PATTERN_STORAGE, "Хранилище шаблонов") add(MBlocks.PATTERN_STORAGE, "Хранилище шаблонов")
add(MBlocks.MATTER_SCANNER, "Сканер материи") addBlock(MBlocks.MATTER_SCANNER.values, "Сканер материи")
add(MBlocks.MATTER_PANEL, "Монитор шаблонов") add(MBlocks.MATTER_PANEL, "Монитор шаблонов")
add(MBlocks.MATTER_REPLICATOR, "Репликатор материи") addBlock(MBlocks.MATTER_REPLICATOR.values, "Репликатор материи")
add(MBlocks.MATTER_BOTTLER, "Бутилировщик материи") addBlock(MBlocks.MATTER_BOTTLER.values, "Бутилировщик материи")
add(MBlocks.DRIVE_VIEWER, "Просмотрщик дисков конденсации") add(MBlocks.DRIVE_VIEWER, "Просмотрщик дисков конденсации")
add(MBlocks.BLACK_HOLE, "Локализированная сингулярная точка аномального искажения пространства-времени") add(MBlocks.BLACK_HOLE, "Локализированная сингулярная точка аномального искажения пространства-времени")
addBlock(MBlocks.COBBLESTONE_GENERATOR.values, "Генератор булыжника") addBlock(MBlocks.COBBLESTONE_GENERATOR.values, "Генератор булыжника")
add(MBlocks.INFINITE_WATER_SOURCE, "Неиссякаемый источник воды") add(MBlocks.INFINITE_WATER_SOURCE, "Неиссякаемый источник воды")
addBlock(MBlocks.ESSENCE_STORAGE.values, "Хранилище эссенции") addBlock(MBlocks.ESSENCE_STORAGE.values, "Хранилище эссенции")
addBlock(MBlocks.ESSENCE_STORAGE.values, "desc", "Позволяет хранить очки опыта") addBlock(MBlocks.ESSENCE_STORAGE.values, "desc", "Позволяет хранить очки опыта")
add(MBlocks.MATTER_RECONSTRUCTOR, "Материальный реконструктор") addBlock(MBlocks.MATTER_RECONSTRUCTOR.values, "Материальный реконструктор")
add(MBlocks.MATTER_RECONSTRUCTOR, "desc", "Чинит инструменты используя материю") addBlock(MBlocks.MATTER_RECONSTRUCTOR.values, "desc", "Чинит инструменты используя материю")
add(MBlocks.DEV_CHEST, "Сундук разработчика") add(MBlocks.DEV_CHEST, "Сундук разработчика")
add(MBlocks.DEV_CHEST, "desc", "Хранит все предметы, которые есть в игре") add(MBlocks.DEV_CHEST, "desc", "Хранит все предметы, которые есть в игре")
add(MBlocks.PAINTER, "Стол маляра") add(MBlocks.PAINTER, "Стол маляра")
@ -460,7 +460,7 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.CHEMICAL_GENERATOR, "Химический генератор") add(MBlocks.CHEMICAL_GENERATOR, "Химический генератор")
add(MBlocks.DRIVE_RACK, "Стеллаж дисков конденсации") add(MBlocks.DRIVE_RACK, "Стеллаж дисков конденсации")
add(MBlocks.ITEM_MONITOR, "Монитор предметов") addBlock(MBlocks.ITEM_MONITOR.values, "Монитор предметов")
addBlock(MBlocks.PLATE_PRESS.values, "Пресс пластин") addBlock(MBlocks.PLATE_PRESS.values, "Пресс пластин")
addBlock(MBlocks.TWIN_PLATE_PRESS.values, "Двойной пресс пластин") addBlock(MBlocks.TWIN_PLATE_PRESS.values, "Двойной пресс пластин")

View File

@ -133,7 +133,7 @@ fun addLootTables(lootTables: LootTables) {
lootTables.tile(MBlocks.COBBLESTONE_GENERATOR.values) lootTables.tile(MBlocks.COBBLESTONE_GENERATOR.values)
lootTables.tile(MBlocks.ESSENCE_STORAGE.values) lootTables.tile(MBlocks.ESSENCE_STORAGE.values)
lootTables.tile(MBlocks.MATTER_RECONSTRUCTOR) lootTables.tile(MBlocks.MATTER_RECONSTRUCTOR.values)
lootTables.tile(MBlocks.FLUID_TANK) lootTables.tile(MBlocks.FLUID_TANK)
lootTables.tile(MBlocks.PAINTER) lootTables.tile(MBlocks.PAINTER)
lootTables.tile(MBlocks.MATTER_ENTANGLER) lootTables.tile(MBlocks.MATTER_ENTANGLER)
@ -145,7 +145,7 @@ fun addLootTables(lootTables: LootTables) {
lootTables.tile(MBlocks.STORAGE_CABLE) lootTables.tile(MBlocks.STORAGE_CABLE)
lootTables.tile(MBlocks.ANDROID_STATION) lootTables.tile(MBlocks.ANDROID_STATION)
lootTables.tile(MBlocks.ANDROID_CHARGER) lootTables.tile(MBlocks.ANDROID_CHARGER)
lootTables.tile(MBlocks.BATTERY_BANK) lootTables.tile(MBlocks.BATTERY_BANK.values)
lootTables.tile(MBlocks.DRIVE_VIEWER) lootTables.tile(MBlocks.DRIVE_VIEWER)
lootTables.tile(MBlocks.STORAGE_BUS) lootTables.tile(MBlocks.STORAGE_BUS)
@ -154,10 +154,10 @@ fun addLootTables(lootTables: LootTables) {
lootTables.tile(MBlocks.STORAGE_POWER_SUPPLIER) lootTables.tile(MBlocks.STORAGE_POWER_SUPPLIER)
lootTables.tile(MBlocks.DRIVE_RACK) lootTables.tile(MBlocks.DRIVE_RACK)
lootTables.tile(MBlocks.MATTER_DECOMPOSER) lootTables.tile(MBlocks.MATTER_DECOMPOSER.values)
lootTables.tile(MBlocks.MATTER_REPLICATOR) lootTables.tile(MBlocks.MATTER_REPLICATOR.values)
lootTables.tile(MBlocks.MATTER_RECYCLER) lootTables.tile(MBlocks.MATTER_RECYCLER)
lootTables.tile(MBlocks.MATTER_SCANNER) lootTables.tile(MBlocks.MATTER_SCANNER.values)
lootTables.tile(MBlocks.PLATE_PRESS.values) lootTables.tile(MBlocks.PLATE_PRESS.values)
lootTables.tile(MBlocks.TWIN_PLATE_PRESS.values) lootTables.tile(MBlocks.TWIN_PLATE_PRESS.values)
@ -167,6 +167,6 @@ fun addLootTables(lootTables: LootTables) {
lootTables.tile(MBlocks.MATTER_PANEL) lootTables.tile(MBlocks.MATTER_PANEL)
lootTables.tile(MBlocks.PATTERN_STORAGE) lootTables.tile(MBlocks.PATTERN_STORAGE)
lootTables.tile(MBlocks.MATTER_CAPACITOR_BANK) lootTables.tile(MBlocks.MATTER_CAPACITOR_BANK.values)
lootTables.tile(MBlocks.MATTER_BOTTLER) lootTables.tile(MBlocks.MATTER_BOTTLER.values)
} }

View File

@ -126,6 +126,18 @@ class MatteryBlockModelProvider(event: GatherDataEvent) : BlockModelProvider(eve
} }
} }
fun colored(modelName: String, suffix: String, textureKeys: Map<String, String>) {
for (color in DyeColor.entries) {
exec {
val model = withExistingParent(modelName + "_${color.name.lowercase()}_$suffix", modLocation(modelName))
for ((key, value) in textureKeys) {
model.texture(key, modLocation("block/$value/${color.name.lowercase()}"))
}
}
}
}
fun coloredMachineCombined(modelName: String, textureName: String, states: Collection<String>, textureKeys: Collection<String>) { fun coloredMachineCombined(modelName: String, textureName: String, states: Collection<String>, textureKeys: Collection<String>) {
exec { exec {
for (color in DyeColor.entries) { for (color in DyeColor.entries) {

View File

@ -99,14 +99,14 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) {
.build(consumer) .build(consumer)
// Блоки // Блоки
MatteryRecipe(MItems.MATTER_CAPACITOR_BANK, category = machinesCategory) MatteryRecipe(MItems.MATTER_CAPACITOR_BANK[null]!!, category = machinesCategory)
.row(Tags.Items.GLASS, MItemTags.IRON_PLATES, Tags.Items.GLASS) .row(Tags.Items.GLASS, MItemTags.IRON_PLATES, Tags.Items.GLASS)
.row(MItemTags.IRON_PLATES, MItems.MACHINE_FRAME, MItemTags.IRON_PLATES) .row(MItemTags.IRON_PLATES, MItems.MACHINE_FRAME, MItemTags.IRON_PLATES)
.row(MItems.MATTER_CABLE, MItems.MATTER_IO_PORT, MItems.MATTER_CABLE) .row(MItems.MATTER_CABLE, MItems.MATTER_IO_PORT, MItems.MATTER_CABLE)
.unlockedBy(MItems.MATTER_CABLE) .unlockedBy(MItems.MATTER_CABLE)
.build(consumer) .build(consumer)
MatteryRecipe(MItems.BATTERY_BANK, category = machinesCategory) MatteryRecipe(MItems.BATTERY_BANK[null]!!, category = machinesCategory)
.row(Tags.Items.GLASS, MItemTags.IRON_PLATES, Tags.Items.GLASS) .row(Tags.Items.GLASS, MItemTags.IRON_PLATES, Tags.Items.GLASS)
.row(MItemTags.IRON_PLATES, MItems.MACHINE_FRAME, MItemTags.IRON_PLATES) .row(MItemTags.IRON_PLATES, MItems.MACHINE_FRAME, MItemTags.IRON_PLATES)
.row(MItems.ELECTRIC_PARTS, MItems.ENERGY_BUS, MItems.ELECTRIC_PARTS) .row(MItems.ELECTRIC_PARTS, MItems.ENERGY_BUS, MItems.ELECTRIC_PARTS)
@ -405,16 +405,18 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) {
.rowB(Tags.Items.RODS_WOODEN) .rowB(Tags.Items.RODS_WOODEN)
.build(consumer) .build(consumer)
MatteryRecipe(MItems.MATTER_RECONSTRUCTOR, category = machinesCategory) for ((dye, item) in MItems.MATTER_REPLICATOR) {
.setUpgradeSource(MItems.MATTER_REPLICATOR) MatteryRecipe(MItems.MATTER_RECONSTRUCTOR[dye]!!, category = machinesCategory)
.addUpgradeOps( .setUpgradeSource(item)
UpgradeRecipe.Indirect("BlockEntityTag.${MatteryBlockEntity.ENERGY_KEY}", "BlockEntityTag.energy"), .addUpgradeOps(
UpgradeRecipe.Indirect("BlockEntityTag.${MatteryBlockEntity.MATTER_STORAGE_KEY}", "BlockEntityTag.matter"), UpgradeRecipe.Indirect("BlockEntityTag.${MatteryBlockEntity.ENERGY_KEY}", "BlockEntityTag.energy"),
) UpgradeRecipe.Indirect("BlockEntityTag.${MatteryBlockEntity.MATTER_STORAGE_KEY}", "BlockEntityTag.matter"),
.row(MItemTags.ADVANCED_CIRCUIT, Tags.Items.GEMS_EMERALD, MItemTags.ADVANCED_CIRCUIT) )
.row(MItems.ELECTRIC_PARTS, MItems.MATTER_REPLICATOR, MItems.ELECTRIC_PARTS) .row(MItemTags.ADVANCED_CIRCUIT, Tags.Items.GEMS_EMERALD, MItemTags.ADVANCED_CIRCUIT)
.row(MItems.ELECTROMAGNET, MItems.ELECTROMAGNET, MItems.ELECTROMAGNET) .row(MItems.ELECTRIC_PARTS, item, MItems.ELECTRIC_PARTS)
.build(consumer) .row(MItems.ELECTROMAGNET, MItems.ELECTROMAGNET, MItems.ELECTROMAGNET)
.build(consumer)
}
MatteryRecipe(MItems.FLUID_CAPSULE, category = RecipeCategory.TOOLS, count = 8) MatteryRecipe(MItems.FLUID_CAPSULE, category = RecipeCategory.TOOLS, count = 8)
.row(MItemTags.TRITANIUM_NUGGETS, MItemTags.TRITANIUM_NUGGETS, MItemTags.TRITANIUM_NUGGETS) .row(MItemTags.TRITANIUM_NUGGETS, MItemTags.TRITANIUM_NUGGETS, MItemTags.TRITANIUM_NUGGETS)

View File

@ -271,10 +271,25 @@ fun addPainterRecipes(consumer: RecipeOutput) {
generate(consumer, MItems.TRITANIUM_DOOR[null]!!, MItems.TRITANIUM_DOOR) generate(consumer, MItems.TRITANIUM_DOOR[null]!!, MItems.TRITANIUM_DOOR)
generate(consumer, MItems.TRITANIUM_TRAPDOOR[null]!!, MItems.TRITANIUM_TRAPDOOR) generate(consumer, MItems.TRITANIUM_TRAPDOOR[null]!!, MItems.TRITANIUM_TRAPDOOR)
generate(consumer, MItems.COBBLESTONE_GENERATOR[null]!!, MItems.COBBLESTONE_GENERATOR) val blocks = listOf(
generate(consumer, MItems.ESSENCE_STORAGE[null]!!, MItems.ESSENCE_STORAGE) MItems.COBBLESTONE_GENERATOR,
generate(consumer, MItems.PLATE_PRESS[null]!!, MItems.PLATE_PRESS) MItems.ESSENCE_STORAGE,
generate(consumer, MItems.TWIN_PLATE_PRESS[null]!!, MItems.TWIN_PLATE_PRESS) MItems.PLATE_PRESS,
MItems.TWIN_PLATE_PRESS,
MItems.ITEM_MONITOR,
MItems.MATTER_BOTTLER,
MItems.MATTER_RECONSTRUCTOR,
MItems.MATTER_REPLICATOR,
MItems.MATTER_SCANNER,
MItems.MATTER_CAPACITOR_BANK,
MItems.BATTERY_BANK,
MItems.MATTER_DECOMPOSER,
)
for (list in blocks) {
generate(consumer, list[null]!!,list)
}
generate(consumer, MRegistry.COMPUTER_TERMINAL.item, MRegistry.COMPUTER_TERMINAL.items) generate(consumer, MRegistry.COMPUTER_TERMINAL.item, MRegistry.COMPUTER_TERMINAL.items)
generate(consumer, MRegistry.VENT.item, MRegistry.VENT.items) generate(consumer, MRegistry.VENT.item, MRegistry.VENT.items)

View File

@ -6,6 +6,7 @@ import net.minecraft.tags.ItemTags
import net.minecraft.world.effect.MobEffects import net.minecraft.world.effect.MobEffects
import net.minecraft.world.item.Items import net.minecraft.world.item.Items
import net.minecraft.world.item.Tiers import net.minecraft.world.item.Tiers
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.Blocks import net.minecraft.world.level.block.Blocks
import net.minecraftforge.common.Tags import net.minecraftforge.common.Tags
import ru.dbotthepony.mc.otm.registry.MBlockTags import ru.dbotthepony.mc.otm.registry.MBlockTags
@ -178,16 +179,16 @@ fun addTags(tagsProvider: TagsProvider) {
tagsProvider.requiresPickaxe(MBlocks.PAINTER, Tiers.STONE) tagsProvider.requiresPickaxe(MBlocks.PAINTER, Tiers.STONE)
tagsProvider.requiresPickaxe(MBlocks.ENERGY_CABLES.values, Tiers.STONE) tagsProvider.requiresPickaxe(MBlocks.ENERGY_CABLES.values, Tiers.STONE)
tagsProvider.requiresPickaxe(listOf( tagsProvider.requiresPickaxe(listOf<Block>(
MBlocks.ANDROID_STATION, MBlocks.ANDROID_STATION,
MBlocks.BATTERY_BANK, *MBlocks.BATTERY_BANK.values.toTypedArray(),
MBlocks.MATTER_DECOMPOSER, *MBlocks.MATTER_DECOMPOSER.values.toTypedArray(),
MBlocks.MATTER_CAPACITOR_BANK, *MBlocks.MATTER_CAPACITOR_BANK.values.toTypedArray(),
MBlocks.PATTERN_STORAGE, MBlocks.PATTERN_STORAGE,
MBlocks.MATTER_SCANNER, *MBlocks.MATTER_SCANNER.values.toTypedArray(),
MBlocks.MATTER_PANEL, MBlocks.MATTER_PANEL,
MBlocks.MATTER_REPLICATOR, *MBlocks.MATTER_REPLICATOR.values.toTypedArray(),
MBlocks.MATTER_BOTTLER, *MBlocks.MATTER_BOTTLER.values.toTypedArray(),
MBlocks.ENERGY_COUNTER, MBlocks.ENERGY_COUNTER,
MBlocks.CHEMICAL_GENERATOR, MBlocks.CHEMICAL_GENERATOR,
*MBlocks.PLATE_PRESS.values.toTypedArray(), *MBlocks.PLATE_PRESS.values.toTypedArray(),
@ -205,7 +206,7 @@ fun addTags(tagsProvider: TagsProvider) {
MBlocks.DRIVE_VIEWER, MBlocks.DRIVE_VIEWER,
MBlocks.DRIVE_RACK, MBlocks.DRIVE_RACK,
MBlocks.ITEM_MONITOR, *MBlocks.ITEM_MONITOR.values.toTypedArray(),
MBlocks.STORAGE_POWER_SUPPLIER, MBlocks.STORAGE_POWER_SUPPLIER,
MBlocks.PHANTOM_ATTRACTOR, MBlocks.PHANTOM_ATTRACTOR,
@ -220,7 +221,7 @@ fun addTags(tagsProvider: TagsProvider) {
MBlocks.HOLO_SIGN, MBlocks.HOLO_SIGN,
*MBlocks.COBBLESTONE_GENERATOR.values.toTypedArray(), *MBlocks.COBBLESTONE_GENERATOR.values.toTypedArray(),
*MBlocks.ESSENCE_STORAGE.values.toTypedArray(), *MBlocks.ESSENCE_STORAGE.values.toTypedArray(),
MBlocks.MATTER_RECONSTRUCTOR, *MBlocks.MATTER_RECONSTRUCTOR.values.toTypedArray(),
MBlocks.FLUID_TANK, MBlocks.FLUID_TANK,
MBlocks.ANDROID_CHARGER, MBlocks.ANDROID_CHARGER,
), Tiers.IRON) ), Tiers.IRON)

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.matter package ru.dbotthepony.mc.otm.block.matter
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.context.BlockPlaceContext import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
@ -22,7 +23,7 @@ import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterBottlerBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class MatterBottlerBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return MatterBottlerBlockEntity(blockPos, blockState) return MatterBottlerBlockEntity(blockPos, blockState)
} }

View File

@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.block.matter
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.core.Direction import net.minecraft.core.Direction
import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.context.BlockPlaceContext import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
@ -18,7 +19,7 @@ import ru.dbotthepony.mc.otm.block.getShapeForEachState
import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterCapacitorBankBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class MatterCapacitorBankBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return MatterCapacitorBankBlockEntity(blockPos, blockState) return MatterCapacitorBankBlockEntity(blockPos, blockState)
} }

View File

@ -4,6 +4,7 @@ import net.minecraft.MethodsReturnNonnullByDefault
import javax.annotation.ParametersAreNonnullByDefault import javax.annotation.ParametersAreNonnullByDefault
import net.minecraft.world.level.block.EntityBlock import net.minecraft.world.level.block.EntityBlock
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.world.item.DyeColor
import net.minecraft.world.level.block.state.BlockState import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.entity.BlockEntity import net.minecraft.world.level.block.entity.BlockEntity
import ru.dbotthepony.mc.otm.block.entity.matter.MatterDecomposerBlockEntity import ru.dbotthepony.mc.otm.block.entity.matter.MatterDecomposerBlockEntity
@ -22,7 +23,7 @@ import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterDecomposerBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class MatterDecomposerBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return MatterDecomposerBlockEntity(blockPos, blockState) return MatterDecomposerBlockEntity(blockPos, blockState)
} }

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.matter package ru.dbotthepony.mc.otm.block.matter
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.world.item.DyeColor
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import net.minecraft.world.level.block.EntityBlock import net.minecraft.world.level.block.EntityBlock
@ -17,7 +18,7 @@ import ru.dbotthepony.mc.otm.block.getShapeForEachState
import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterReconstructorBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class MatterReconstructorBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(pPos: BlockPos, pState: BlockState): BlockEntity { override fun newBlockEntity(pPos: BlockPos, pState: BlockState): BlockEntity {
return MatterReconstructorBlockEntity(pPos, pState) return MatterReconstructorBlockEntity(pPos, pState)
} }

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.matter package ru.dbotthepony.mc.otm.block.matter
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.world.item.DyeColor
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
@ -20,7 +21,7 @@ import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterReplicatorBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class MatterReplicatorBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return MatterReplicatorBlockEntity(blockPos, blockState) return MatterReplicatorBlockEntity(blockPos, blockState)
} }

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.matter package ru.dbotthepony.mc.otm.block.matter
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.world.item.DyeColor
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
@ -20,7 +21,7 @@ import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterScannerBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class MatterScannerBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return MatterScannerBlockEntity(blockPos, blockState) return MatterScannerBlockEntity(blockPos, blockState)
} }

View File

@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.block.storage
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.TooltipFlag import net.minecraft.world.item.TooltipFlag
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
@ -22,7 +23,7 @@ import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
class ItemMonitorBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { class ItemMonitorBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return ItemMonitorBlockEntity(blockPos, blockState) return ItemMonitorBlockEntity(blockPos, blockState)
} }

View File

@ -12,6 +12,7 @@ import net.minecraft.world.level.block.entity.BlockEntityType
import net.minecraft.world.level.block.entity.BlockEntityTicker import net.minecraft.world.level.block.entity.BlockEntityTicker
import net.minecraft.world.level.block.state.StateDefinition import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.world.item.DyeColor
import ru.dbotthepony.mc.otm.block.entity.tech.BatteryBankBlockEntity import ru.dbotthepony.mc.otm.block.entity.tech.BatteryBankBlockEntity
import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level import net.minecraft.world.level.Level
@ -25,9 +26,7 @@ import ru.dbotthepony.mc.otm.oncePre
import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.registry.MBlockEntities
import ru.dbotthepony.mc.otm.shapes.BlockShapes import ru.dbotthepony.mc.otm.shapes.BlockShapes
@MethodsReturnNonnullByDefault class BatteryBankBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
@ParametersAreNonnullByDefault
class BatteryBankBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
override fun <T : BlockEntity> getTicker( override fun <T : BlockEntity> getTicker(
level: Level, level: Level,
p_153213_: BlockState, p_153213_: BlockState,

View File

@ -71,7 +71,7 @@ class JEIPlugin : IModPlugin {
registration.addRecipeCatalyst(ItemStack(MItems.POWERED_SMOKER), RecipeTypes.SMOKING) registration.addRecipeCatalyst(ItemStack(MItems.POWERED_SMOKER), RecipeTypes.SMOKING)
registration.addRecipeCatalyst(ItemStack(MItems.POWERED_SMOKER), MicrowaveRecipeCategory.recipeType) registration.addRecipeCatalyst(ItemStack(MItems.POWERED_SMOKER), MicrowaveRecipeCategory.recipeType)
registration.addRecipeCatalyst(ItemStack(MItems.ExopackUpgrades.CRAFTING_UPGRADE), RecipeTypes.CRAFTING) registration.addRecipeCatalyst(ItemStack(MItems.ExopackUpgrades.CRAFTING_UPGRADE), RecipeTypes.CRAFTING)
registration.addRecipeCatalyst(ItemStack(MItems.ITEM_MONITOR), RecipeTypes.CRAFTING) registration.addRecipeCatalyst(ItemStack(MItems.ITEM_MONITOR[null]!!), RecipeTypes.CRAFTING)
MItems.PLATE_PRESS.values.forEach { registration.addRecipeCatalyst(ItemStack(it), PlatePressRecipeCategory.recipeType) } MItems.PLATE_PRESS.values.forEach { registration.addRecipeCatalyst(ItemStack(it), PlatePressRecipeCategory.recipeType) }
MItems.TWIN_PLATE_PRESS.values.forEach { registration.addRecipeCatalyst(ItemStack(it), PlatePressRecipeCategory.recipeType) } MItems.TWIN_PLATE_PRESS.values.forEach { registration.addRecipeCatalyst(ItemStack(it), PlatePressRecipeCategory.recipeType) }
registration.addRecipeCatalyst(ItemStack(MItems.PAINTER), PainterRecipeCategory.recipeType) registration.addRecipeCatalyst(ItemStack(MItems.PAINTER), PainterRecipeCategory.recipeType)

View File

@ -45,21 +45,21 @@ object MBlockEntities {
} }
val ANDROID_STATION by register(MNames.ANDROID_STATION, ::AndroidStationBlockEntity, MBlocks::ANDROID_STATION) val ANDROID_STATION by register(MNames.ANDROID_STATION, ::AndroidStationBlockEntity, MBlocks::ANDROID_STATION)
val BATTERY_BANK by register(MNames.BATTERY_BANK, ::BatteryBankBlockEntity, MBlocks::BATTERY_BANK) val BATTERY_BANK by register(MNames.BATTERY_BANK, ::BatteryBankBlockEntity, *MBlocks.BATTERY_BANK.asSupplierArray())
val MATTER_DECOMPOSER by register(MNames.MATTER_DECOMPOSER, ::MatterDecomposerBlockEntity, MBlocks::MATTER_DECOMPOSER) val MATTER_DECOMPOSER by register(MNames.MATTER_DECOMPOSER, ::MatterDecomposerBlockEntity, *MBlocks.MATTER_DECOMPOSER.asSupplierArray())
val MATTER_CAPACITOR_BANK by register(MNames.MATTER_CAPACITOR_BANK, ::MatterCapacitorBankBlockEntity, MBlocks::MATTER_CAPACITOR_BANK) val MATTER_CAPACITOR_BANK by register(MNames.MATTER_CAPACITOR_BANK, ::MatterCapacitorBankBlockEntity, *MBlocks.MATTER_CAPACITOR_BANK.asSupplierArray())
val MATTER_CABLE by register(MNames.MATTER_CABLE, ::MatterCableBlockEntity, MBlocks::MATTER_CABLE) val MATTER_CABLE by register(MNames.MATTER_CABLE, ::MatterCableBlockEntity, MBlocks::MATTER_CABLE)
val STORAGE_CABLE by register(MNames.STORAGE_CABLE, ::StorageCableBlockEntity, MBlocks::STORAGE_CABLE) val STORAGE_CABLE by register(MNames.STORAGE_CABLE, ::StorageCableBlockEntity, MBlocks::STORAGE_CABLE)
val PATTERN_STORAGE by register(MNames.PATTERN_STORAGE, ::PatternStorageBlockEntity, MBlocks::PATTERN_STORAGE) val PATTERN_STORAGE by register(MNames.PATTERN_STORAGE, ::PatternStorageBlockEntity, MBlocks::PATTERN_STORAGE)
val MATTER_SCANNER by register(MNames.MATTER_SCANNER, ::MatterScannerBlockEntity, MBlocks::MATTER_SCANNER) val MATTER_SCANNER by register(MNames.MATTER_SCANNER, ::MatterScannerBlockEntity, *MBlocks.MATTER_SCANNER.asSupplierArray())
val MATTER_PANEL by register(MNames.MATTER_PANEL, ::MatterPanelBlockEntity, MBlocks::MATTER_PANEL) val MATTER_PANEL by register(MNames.MATTER_PANEL, ::MatterPanelBlockEntity, MBlocks::MATTER_PANEL)
val MATTER_REPLICATOR by register(MNames.MATTER_REPLICATOR, ::MatterReplicatorBlockEntity, MBlocks::MATTER_REPLICATOR) val MATTER_REPLICATOR by register(MNames.MATTER_REPLICATOR, ::MatterReplicatorBlockEntity, *MBlocks.MATTER_REPLICATOR.asSupplierArray())
val MATTER_BOTTLER by register(MNames.MATTER_BOTTLER, ::MatterBottlerBlockEntity, MBlocks::MATTER_BOTTLER) val MATTER_BOTTLER by register(MNames.MATTER_BOTTLER, ::MatterBottlerBlockEntity, *MBlocks.MATTER_BOTTLER.asSupplierArray())
val DRIVE_VIEWER by register(MNames.DRIVE_VIEWER, ::DriveViewerBlockEntity, MBlocks::DRIVE_VIEWER) val DRIVE_VIEWER by register(MNames.DRIVE_VIEWER, ::DriveViewerBlockEntity, MBlocks::DRIVE_VIEWER)
val BLACK_HOLE by register(MNames.BLACK_HOLE, ::BlackHoleBlockEntity, MBlocks::BLACK_HOLE) val BLACK_HOLE by register(MNames.BLACK_HOLE, ::BlackHoleBlockEntity, MBlocks::BLACK_HOLE)
val CARGO_CRATE by register(MNames.CARGO_CRATE, ::CargoCrateBlockEntity, *MRegistry.CARGO_CRATES.blocks.asSupplierArray()) val CARGO_CRATE by register(MNames.CARGO_CRATE, ::CargoCrateBlockEntity, *MRegistry.CARGO_CRATES.blocks.asSupplierArray())
val DRIVE_RACK by register(MNames.DRIVE_RACK, ::DriveRackBlockEntity, MBlocks::DRIVE_RACK) val DRIVE_RACK by register(MNames.DRIVE_RACK, ::DriveRackBlockEntity, MBlocks::DRIVE_RACK)
val ITEM_MONITOR by register(MNames.ITEM_MONITOR, ::ItemMonitorBlockEntity, MBlocks::ITEM_MONITOR) val ITEM_MONITOR by register(MNames.ITEM_MONITOR, ::ItemMonitorBlockEntity, *MBlocks.ITEM_MONITOR.asSupplierArray())
val ENERGY_COUNTER by register(MNames.ENERGY_COUNTER, ::EnergyCounterBlockEntity, MBlocks::ENERGY_COUNTER) val ENERGY_COUNTER by register(MNames.ENERGY_COUNTER, ::EnergyCounterBlockEntity, MBlocks::ENERGY_COUNTER)
val CHEMICAL_GENERATOR by register(MNames.CHEMICAL_GENERATOR, ::ChemicalGeneratorBlockEntity, MBlocks::CHEMICAL_GENERATOR) val CHEMICAL_GENERATOR by register(MNames.CHEMICAL_GENERATOR, ::ChemicalGeneratorBlockEntity, MBlocks::CHEMICAL_GENERATOR)
val PLATE_PRESS by register(MNames.PLATE_PRESS, ::PlatePressBlockEntity, *MBlocks.PLATE_PRESS.asSupplierArray()) val PLATE_PRESS by register(MNames.PLATE_PRESS, ::PlatePressBlockEntity, *MBlocks.PLATE_PRESS.asSupplierArray())
@ -69,7 +69,7 @@ object MBlockEntities {
val ENERGY_SERVO by register(MNames.ENERGY_SERVO, ::EnergyServoBlockEntity, MBlocks::ENERGY_SERVO) val ENERGY_SERVO by register(MNames.ENERGY_SERVO, ::EnergyServoBlockEntity, MBlocks::ENERGY_SERVO)
val COBBLESTONE_GENERATOR by register(MNames.COBBLESTONE_GENERATOR, ::CobblerBlockEntity, *MBlocks.COBBLESTONE_GENERATOR.asSupplierArray()) val COBBLESTONE_GENERATOR by register(MNames.COBBLESTONE_GENERATOR, ::CobblerBlockEntity, *MBlocks.COBBLESTONE_GENERATOR.asSupplierArray())
val ESSENCE_STORAGE by register(MNames.ESSENCE_STORAGE, ::EssenceStorageBlockEntity, *MBlocks.ESSENCE_STORAGE.asSupplierArray()) val ESSENCE_STORAGE by register(MNames.ESSENCE_STORAGE, ::EssenceStorageBlockEntity, *MBlocks.ESSENCE_STORAGE.asSupplierArray())
val MATTER_RECONSTRUCTOR by register(MNames.MATTER_RECONSTRUCTOR, ::MatterReconstructorBlockEntity, MBlocks::MATTER_RECONSTRUCTOR) val MATTER_RECONSTRUCTOR by register(MNames.MATTER_RECONSTRUCTOR, ::MatterReconstructorBlockEntity, *MBlocks.MATTER_RECONSTRUCTOR.asSupplierArray())
val FLUID_TANK by register(MNames.FLUID_TANK, ::FluidTankBlockEntity, MBlocks::FLUID_TANK) val FLUID_TANK by register(MNames.FLUID_TANK, ::FluidTankBlockEntity, MBlocks::FLUID_TANK)
val ANDROID_CHARGER by register(MNames.ANDROID_CHARGER, ::AndroidChargerBlockEntity, MBlocks::ANDROID_CHARGER) val ANDROID_CHARGER by register(MNames.ANDROID_CHARGER, ::AndroidChargerBlockEntity, MBlocks::ANDROID_CHARGER)
val ANDROID_CHARGER_MIDDLE by register(MNames.ANDROID_CHARGER + "_middle", ::AndroidChargerMiddleBlockEntity, MBlocks::ANDROID_CHARGER) val ANDROID_CHARGER_MIDDLE by register(MNames.ANDROID_CHARGER + "_middle", ::AndroidChargerMiddleBlockEntity, MBlocks::ANDROID_CHARGER)

View File

@ -99,15 +99,15 @@ object MBlocks {
val ANDROID_STATION: Block by registry.register(MNames.ANDROID_STATION) { AndroidStationBlock() } val ANDROID_STATION: Block by registry.register(MNames.ANDROID_STATION) { AndroidStationBlock() }
val ANDROID_CHARGER: Block by registry.register(MNames.ANDROID_CHARGER) { AndroidChargerBlock() } val ANDROID_CHARGER: Block by registry.register(MNames.ANDROID_CHARGER) { AndroidChargerBlock() }
val BATTERY_BANK: Block by registry.register(MNames.BATTERY_BANK) { BatteryBankBlock() } val BATTERY_BANK = registry.coloredWithBase(MNames.BATTERY_BANK) { color, _ -> BatteryBankBlock(color) }
val MATTER_DECOMPOSER: Block by registry.register(MNames.MATTER_DECOMPOSER) { MatterDecomposerBlock() } val MATTER_DECOMPOSER = registry.coloredWithBase(MNames.MATTER_DECOMPOSER) { color, _ -> MatterDecomposerBlock(color) }
val MATTER_CAPACITOR_BANK: Block by registry.register(MNames.MATTER_CAPACITOR_BANK) { MatterCapacitorBankBlock() } val MATTER_CAPACITOR_BANK = registry.coloredWithBase(MNames.MATTER_CAPACITOR_BANK) { color, _ -> MatterCapacitorBankBlock(color) }
val MATTER_CABLE: Block by registry.register(MNames.MATTER_CABLE) { MatterCableBlock() } val MATTER_CABLE: Block by registry.register(MNames.MATTER_CABLE) { MatterCableBlock() }
val PATTERN_STORAGE: Block by registry.register(MNames.PATTERN_STORAGE) { PatternStorageBlock() } val PATTERN_STORAGE: Block by registry.register(MNames.PATTERN_STORAGE) { PatternStorageBlock() }
val MATTER_SCANNER: Block by registry.register(MNames.MATTER_SCANNER) { MatterScannerBlock() } val MATTER_SCANNER = registry.coloredWithBase(MNames.MATTER_SCANNER) { color, _ -> MatterScannerBlock(color) }
val MATTER_PANEL: Block by registry.register(MNames.MATTER_PANEL) { MatterPanelBlock() } val MATTER_PANEL: Block by registry.register(MNames.MATTER_PANEL) { MatterPanelBlock() }
val MATTER_REPLICATOR: Block by registry.register(MNames.MATTER_REPLICATOR) { MatterReplicatorBlock() } val MATTER_REPLICATOR = registry.coloredWithBase(MNames.MATTER_REPLICATOR) { color, _ -> MatterReplicatorBlock(color) }
val MATTER_BOTTLER: Block by registry.register(MNames.MATTER_BOTTLER) { MatterBottlerBlock() } val MATTER_BOTTLER = registry.coloredWithBase(MNames.MATTER_BOTTLER) { color, _ -> MatterBottlerBlock(color) }
val ENERGY_COUNTER: Block by registry.register(MNames.ENERGY_COUNTER) { EnergyCounterBlock() } val ENERGY_COUNTER: Block by registry.register(MNames.ENERGY_COUNTER) { EnergyCounterBlock() }
val CHEMICAL_GENERATOR: Block by registry.register(MNames.CHEMICAL_GENERATOR) { ChemicalGeneratorBlock() } val CHEMICAL_GENERATOR: Block by registry.register(MNames.CHEMICAL_GENERATOR) { ChemicalGeneratorBlock() }
val PLATE_PRESS = registry.coloredWithBase(MNames.PLATE_PRESS) { color, _ -> PlatePressBlock(color) } val PLATE_PRESS = registry.coloredWithBase(MNames.PLATE_PRESS) { color, _ -> PlatePressBlock(color) }
@ -120,7 +120,7 @@ object MBlocks {
val COBBLESTONE_GENERATOR = registry.coloredWithBase(MNames.COBBLESTONE_GENERATOR) { color, _ -> CobblerBlock(color) } val COBBLESTONE_GENERATOR = registry.coloredWithBase(MNames.COBBLESTONE_GENERATOR) { color, _ -> CobblerBlock(color) }
val INFINITE_WATER_SOURCE: Block by registry.register(MNames.INFINITE_WATER_SOURCE) { InfiniteWaterSourceBlock() } val INFINITE_WATER_SOURCE: Block by registry.register(MNames.INFINITE_WATER_SOURCE) { InfiniteWaterSourceBlock() }
val ESSENCE_STORAGE = registry.coloredWithBase(MNames.ESSENCE_STORAGE) { color, _ -> EssenceStorageBlock(color) } val ESSENCE_STORAGE = registry.coloredWithBase(MNames.ESSENCE_STORAGE) { color, _ -> EssenceStorageBlock(color) }
val MATTER_RECONSTRUCTOR: MatterReconstructorBlock by registry.register(MNames.MATTER_RECONSTRUCTOR) { MatterReconstructorBlock() } val MATTER_RECONSTRUCTOR = registry.coloredWithBase(MNames.MATTER_RECONSTRUCTOR) { color, _ -> MatterReconstructorBlock(color) }
val PAINTER: PainterBlock by registry.register(MNames.PAINTER) { PainterBlock() } val PAINTER: PainterBlock by registry.register(MNames.PAINTER) { PainterBlock() }
val MATTER_ENTANGLER: MatterEntanglerBlock by registry.register(MNames.MATTER_ENTANGLER) { MatterEntanglerBlock() } val MATTER_ENTANGLER: MatterEntanglerBlock by registry.register(MNames.MATTER_ENTANGLER) { MatterEntanglerBlock() }
@ -134,7 +134,7 @@ object MBlocks {
val DRIVE_VIEWER: Block by registry.register(MNames.DRIVE_VIEWER) { DriveViewerBlock() } val DRIVE_VIEWER: Block by registry.register(MNames.DRIVE_VIEWER) { DriveViewerBlock() }
val DRIVE_RACK: Block by registry.register(MNames.DRIVE_RACK) { DriveRackBlock() } val DRIVE_RACK: Block by registry.register(MNames.DRIVE_RACK) { DriveRackBlock() }
val ITEM_MONITOR: Block by registry.register(MNames.ITEM_MONITOR) { ItemMonitorBlock() } val ITEM_MONITOR = registry.coloredWithBase(MNames.ITEM_MONITOR) { color, _ -> ItemMonitorBlock(color) }
val STORAGE_CABLE: Block by registry.register(MNames.STORAGE_CABLE) { StorageCableBlock() } val STORAGE_CABLE: Block by registry.register(MNames.STORAGE_CABLE) { StorageCableBlock() }
val STORAGE_POWER_SUPPLIER: Block by registry.register(MNames.STORAGE_POWER_SUPPLIER) { StoragePowerSupplierBlock() } val STORAGE_POWER_SUPPLIER: Block by registry.register(MNames.STORAGE_POWER_SUPPLIER) { StoragePowerSupplierBlock() }

View File

@ -57,15 +57,15 @@ object MItems {
val ANDROID_STATION: BlockItem by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) } val ANDROID_STATION: BlockItem by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) }
val ANDROID_CHARGER: BlockItem by registry.register(MNames.ANDROID_CHARGER) { BlockItem(MBlocks.ANDROID_CHARGER, DEFAULT_PROPERTIES) } val ANDROID_CHARGER: BlockItem by registry.register(MNames.ANDROID_CHARGER) { BlockItem(MBlocks.ANDROID_CHARGER, DEFAULT_PROPERTIES) }
val BATTERY_BANK: BlockItem by registry.register(MNames.BATTERY_BANK) { BlockItem(MBlocks.BATTERY_BANK, DEFAULT_PROPERTIES) } val BATTERY_BANK = registry.coloredWithBase(MNames.BATTERY_BANK) { color, _ -> BlockItem(MBlocks.BATTERY_BANK[color]!!, DEFAULT_PROPERTIES) }
val MATTER_DECOMPOSER: BlockItem by registry.register(MNames.MATTER_DECOMPOSER) { BlockItem(MBlocks.MATTER_DECOMPOSER, DEFAULT_PROPERTIES) } val MATTER_DECOMPOSER = registry.coloredWithBase(MNames.MATTER_DECOMPOSER) { color, _ -> BlockItem(MBlocks.MATTER_DECOMPOSER[color]!!, DEFAULT_PROPERTIES) }
val MATTER_CAPACITOR_BANK: BlockItem by registry.register(MNames.MATTER_CAPACITOR_BANK) { BlockItem(MBlocks.MATTER_CAPACITOR_BANK, DEFAULT_PROPERTIES) } val MATTER_CAPACITOR_BANK = registry.coloredWithBase(MNames.MATTER_CAPACITOR_BANK) { color, _ -> BlockItem(MBlocks.MATTER_CAPACITOR_BANK[color]!!, DEFAULT_PROPERTIES) }
val MATTER_CABLE: BlockItem by registry.register(MNames.MATTER_CABLE) { BlockItem(MBlocks.MATTER_CABLE, DEFAULT_PROPERTIES) } val MATTER_CABLE: BlockItem by registry.register(MNames.MATTER_CABLE) { BlockItem(MBlocks.MATTER_CABLE, DEFAULT_PROPERTIES) }
val PATTERN_STORAGE: BlockItem by registry.register(MNames.PATTERN_STORAGE) { BlockItem(MBlocks.PATTERN_STORAGE, DEFAULT_PROPERTIES) } val PATTERN_STORAGE: BlockItem by registry.register(MNames.PATTERN_STORAGE) { BlockItem(MBlocks.PATTERN_STORAGE, DEFAULT_PROPERTIES) }
val MATTER_SCANNER: BlockItem by registry.register(MNames.MATTER_SCANNER) { BlockItem(MBlocks.MATTER_SCANNER, DEFAULT_PROPERTIES) } val MATTER_SCANNER = registry.coloredWithBase(MNames.MATTER_SCANNER) { color, _ -> BlockItem(MBlocks.MATTER_SCANNER[color]!!, DEFAULT_PROPERTIES) }
val MATTER_PANEL: BlockItem by registry.register(MNames.MATTER_PANEL) { BlockItem(MBlocks.MATTER_PANEL, DEFAULT_PROPERTIES) } val MATTER_PANEL: BlockItem by registry.register(MNames.MATTER_PANEL) { BlockItem(MBlocks.MATTER_PANEL, DEFAULT_PROPERTIES) }
val MATTER_REPLICATOR: BlockItem by registry.register(MNames.MATTER_REPLICATOR) { BlockItem(MBlocks.MATTER_REPLICATOR, DEFAULT_PROPERTIES) } val MATTER_REPLICATOR = registry.coloredWithBase(MNames.MATTER_REPLICATOR) { color, _ -> BlockItem(MBlocks.MATTER_REPLICATOR[color]!!, DEFAULT_PROPERTIES) }
val MATTER_BOTTLER: BlockItem by registry.register(MNames.MATTER_BOTTLER) { BlockItem(MBlocks.MATTER_BOTTLER, DEFAULT_PROPERTIES) } val MATTER_BOTTLER = registry.coloredWithBase(MNames.MATTER_BOTTLER) { color, _ -> BlockItem(MBlocks.MATTER_BOTTLER[color]!!, DEFAULT_PROPERTIES) }
val TRITANIUM_ORE: BlockItem by registry.register(MNames.TRITANIUM_ORE) { BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES) } val TRITANIUM_ORE: BlockItem by registry.register(MNames.TRITANIUM_ORE) { BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES) }
val DEEPSLATE_TRITANIUM_ORE: BlockItem by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES) } val DEEPSLATE_TRITANIUM_ORE: BlockItem by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES) }
@ -85,7 +85,7 @@ object MItems {
val STORAGE_EXPORTER: BlockItem by registry.register(MNames.STORAGE_EXPORTER) { BlockItem(MBlocks.STORAGE_EXPORTER, DEFAULT_PROPERTIES) } val STORAGE_EXPORTER: BlockItem by registry.register(MNames.STORAGE_EXPORTER) { BlockItem(MBlocks.STORAGE_EXPORTER, DEFAULT_PROPERTIES) }
val DRIVE_VIEWER: BlockItem by registry.register(MNames.DRIVE_VIEWER) { BlockItem(MBlocks.DRIVE_VIEWER, DEFAULT_PROPERTIES) } val DRIVE_VIEWER: BlockItem by registry.register(MNames.DRIVE_VIEWER) { BlockItem(MBlocks.DRIVE_VIEWER, DEFAULT_PROPERTIES) }
val DRIVE_RACK: BlockItem by registry.register(MNames.DRIVE_RACK) { BlockItem(MBlocks.DRIVE_RACK, DEFAULT_PROPERTIES) } val DRIVE_RACK: BlockItem by registry.register(MNames.DRIVE_RACK) { BlockItem(MBlocks.DRIVE_RACK, DEFAULT_PROPERTIES) }
val ITEM_MONITOR: BlockItem by registry.register(MNames.ITEM_MONITOR) { BlockItem(MBlocks.ITEM_MONITOR, DEFAULT_PROPERTIES) } val ITEM_MONITOR = registry.coloredWithBase(MNames.ITEM_MONITOR) { color, _ -> BlockItem(MBlocks.ITEM_MONITOR[color]!!, DEFAULT_PROPERTIES) }
val STORAGE_CABLE: BlockItem by registry.register(MNames.STORAGE_CABLE) { BlockItem(MBlocks.STORAGE_CABLE, DEFAULT_PROPERTIES) } val STORAGE_CABLE: BlockItem by registry.register(MNames.STORAGE_CABLE) { BlockItem(MBlocks.STORAGE_CABLE, DEFAULT_PROPERTIES) }
val STORAGE_POWER_SUPPLIER: BlockItem by registry.register(MNames.STORAGE_POWER_SUPPLIER) { BlockItem(MBlocks.STORAGE_POWER_SUPPLIER, DEFAULT_PROPERTIES) } val STORAGE_POWER_SUPPLIER: BlockItem by registry.register(MNames.STORAGE_POWER_SUPPLIER) { BlockItem(MBlocks.STORAGE_POWER_SUPPLIER, DEFAULT_PROPERTIES) }
@ -97,7 +97,7 @@ object MItems {
val INFINITE_WATER_SOURCE: BlockItem by registry.register(MNames.INFINITE_WATER_SOURCE) { BlockItem(MBlocks.INFINITE_WATER_SOURCE, DEFAULT_PROPERTIES) } val INFINITE_WATER_SOURCE: BlockItem by registry.register(MNames.INFINITE_WATER_SOURCE) { BlockItem(MBlocks.INFINITE_WATER_SOURCE, DEFAULT_PROPERTIES) }
val ESSENCE_STORAGE: Map<DyeColor?, BlockItem> = registry.coloredWithBase(MNames.ESSENCE_STORAGE) { color, _ -> BlockItem(MBlocks.ESSENCE_STORAGE[color]!!, DEFAULT_PROPERTIES) } val ESSENCE_STORAGE: Map<DyeColor?, BlockItem> = registry.coloredWithBase(MNames.ESSENCE_STORAGE) { color, _ -> BlockItem(MBlocks.ESSENCE_STORAGE[color]!!, DEFAULT_PROPERTIES) }
val MATTER_RECONSTRUCTOR: BlockItem by registry.register(MNames.MATTER_RECONSTRUCTOR) { BlockItem(MBlocks.MATTER_RECONSTRUCTOR, DEFAULT_PROPERTIES) } val MATTER_RECONSTRUCTOR = registry.coloredWithBase(MNames.MATTER_RECONSTRUCTOR) { color, _ -> BlockItem(MBlocks.MATTER_RECONSTRUCTOR[color]!!, DEFAULT_PROPERTIES) }
val DEV_CHEST: BlockItem by registry.register(MNames.DEV_CHEST) { BlockItem(MBlocks.DEV_CHEST, DEFAULT_PROPERTIES) } val DEV_CHEST: BlockItem by registry.register(MNames.DEV_CHEST) { BlockItem(MBlocks.DEV_CHEST, DEFAULT_PROPERTIES) }
val PAINTER: BlockItem by registry.register(MNames.PAINTER) { BlockItem(MBlocks.PAINTER, DEFAULT_PROPERTIES) } val PAINTER: BlockItem by registry.register(MNames.PAINTER) { BlockItem(MBlocks.PAINTER, DEFAULT_PROPERTIES) }
@ -116,7 +116,7 @@ object MItems {
machines.add(::ANDROID_STATION) machines.add(::ANDROID_STATION)
machines.add(::ANDROID_CHARGER) machines.add(::ANDROID_CHARGER)
machines.add(::BATTERY_BANK) machines.addAll(BATTERY_BANK.asSupplierArray().iterator())
machines.add(::ENERGY_COUNTER) machines.add(::ENERGY_COUNTER)
machines.add(::CHEMICAL_GENERATOR) machines.add(::CHEMICAL_GENERATOR)
machines.add(::ENERGY_SERVO) machines.add(::ENERGY_SERVO)
@ -125,14 +125,14 @@ object MItems {
machines.addAll(COBBLESTONE_GENERATOR.asSupplierArray().iterator()) machines.addAll(COBBLESTONE_GENERATOR.asSupplierArray().iterator())
machines.addAll(ESSENCE_STORAGE.asSupplierArray().iterator()) machines.addAll(ESSENCE_STORAGE.asSupplierArray().iterator())
machines.add(::MATTER_DECOMPOSER) machines.addAll(MATTER_DECOMPOSER.asSupplierArray().iterator())
machines.add(::MATTER_CAPACITOR_BANK) machines.addAll(MATTER_CAPACITOR_BANK.asSupplierArray().iterator())
machines.add(::MATTER_CABLE) machines.add(::MATTER_CABLE)
machines.add(::PATTERN_STORAGE) machines.add(::PATTERN_STORAGE)
machines.add(::MATTER_SCANNER) machines.addAll(MATTER_SCANNER.asSupplierArray().iterator())
machines.add(::MATTER_PANEL) machines.add(::MATTER_PANEL)
machines.add(::MATTER_REPLICATOR) machines.addAll(MATTER_REPLICATOR.asSupplierArray().iterator())
machines.add(::MATTER_BOTTLER) machines.addAll(MATTER_BOTTLER.asSupplierArray().iterator())
machines.add(::MATTER_ENTANGLER) machines.add(::MATTER_ENTANGLER)
machines.add(::MATTER_RECYCLER) machines.add(::MATTER_RECYCLER)
@ -141,7 +141,7 @@ object MItems {
machines.add(::STORAGE_EXPORTER) machines.add(::STORAGE_EXPORTER)
machines.add(::DRIVE_VIEWER) machines.add(::DRIVE_VIEWER)
machines.add(::DRIVE_RACK) machines.add(::DRIVE_RACK)
machines.add(::ITEM_MONITOR) machines.addAll(ITEM_MONITOR.asSupplierArray().iterator())
machines.add(::STORAGE_CABLE) machines.add(::STORAGE_CABLE)
machines.add(::STORAGE_POWER_SUPPLIER) machines.add(::STORAGE_POWER_SUPPLIER)

View File

@ -1,10 +1,12 @@
{ {
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"ambientocclusion": false, "parent": "block/block",
"texture_size": [32, 64], "render_type": "translucent",
"texture_size": [32, 32],
"textures": { "textures": {
"particle": "matter_replicator", "1": "overdrive_that_matters:block/matter_replicator_base",
"texture": "matter_replicator" "particle": "overdrive_that_matters:block/matter_replicator_base",
"texture": "overdrive_that_matters:block/matter_replicator"
}, },
"elements": [ "elements": [
{ {
@ -12,12 +14,12 @@
"from": [15, 0, 0], "from": [15, 0, 0],
"to": [16, 11, 16], "to": [16, 11, 16],
"faces": { "faces": {
"north": {"uv": [0, 1.25, 0.5, 4], "texture": "#texture"}, "north": {"uv": [0, 2.5, 0.5, 8], "texture": "#texture"},
"east": {"uv": [0, 5.25, 8, 8], "texture": "#texture"}, "east": {"uv": [0, 2.5, 8, 8], "texture": "#1"},
"south": {"uv": [15.5, 1.25, 16, 4], "texture": "#texture"}, "south": {"uv": [15.5, 2.5, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 9, 16, 11.75], "texture": "#texture"}, "west": {"uv": [8, 9.5, 16, 15], "texture": "#1"},
"up": {"uv": [0, 8, 0.5, 12], "rotation": 180, "texture": "#texture"}, "up": {"uv": [0, 8, 0.5, 16], "rotation": 180, "texture": "#1"},
"down": {"uv": [8, 8, 8.5, 12], "texture": "#texture"} "down": {"uv": [8, 8, 8.5, 16], "texture": "#1"}
} }
}, },
{ {
@ -25,12 +27,12 @@
"from": [0, 0, 0], "from": [0, 0, 0],
"to": [1, 11, 16], "to": [1, 11, 16],
"faces": { "faces": {
"north": {"uv": [7.5, 1.25, 8, 4], "texture": "#texture"}, "north": {"uv": [7.5, 2.5, 8, 8], "texture": "#texture"},
"east": {"uv": [8, 9, 16, 11.75], "texture": "#texture"}, "east": {"uv": [8, 9.5, 16, 15], "texture": "#1"},
"south": {"uv": [8, 1.25, 8.5, 4], "texture": "#texture"}, "south": {"uv": [8, 2.5, 8.5, 8], "texture": "#1"},
"west": {"uv": [8, 5.25, 16, 8], "texture": "#texture"}, "west": {"uv": [8, 2.5, 16, 8], "texture": "#1"},
"up": {"uv": [7.5, 8, 8, 12], "rotation": 180, "texture": "#texture"}, "up": {"uv": [7.5, 8, 8, 16], "rotation": 180, "texture": "#1"},
"down": {"uv": [15.5, 8, 16, 12], "texture": "#texture"} "down": {"uv": [15.5, 8, 16, 16], "texture": "#1"}
} }
}, },
{ {
@ -38,12 +40,10 @@
"from": [0, 11, 1], "from": [0, 11, 1],
"to": [8, 16, 6], "to": [8, 16, 6],
"faces": { "faces": {
"north": {"uv": [4, 13.25, 8, 14.5], "texture": "#texture"}, "north": {"uv": [4, 10.5, 8, 13], "texture": "#texture"},
"east": {"uv": [0, 0, 5, 5], "texture": "#missing"}, "south": {"uv": [4, 13, 8, 15.5], "texture": "#texture"},
"south": {"uv": [4, 12, 8, 13.25], "texture": "#texture"}, "west": {"uv": [8.5, 0, 11, 2.5], "texture": "#1"},
"west": {"uv": [8.5, 4, 11, 5.25], "texture": "#texture"}, "up": {"uv": [4, 8, 8, 10.5], "texture": "#texture"}
"up": {"uv": [4, 12, 8, 13.25], "texture": "#texture"},
"down": {"uv": [0, 0, 8, 5], "texture": "#missing"}
} }
}, },
{ {
@ -51,77 +51,99 @@
"from": [8, 11, 0], "from": [8, 11, 0],
"to": [16, 16, 6], "to": [16, 16, 6],
"faces": { "faces": {
"north": {"uv": [0, 0, 4, 1.25], "texture": "#texture"}, "north": {"uv": [0, 0, 4, 2.5], "texture": "#texture"},
"east": {"uv": [5, 4, 8, 5.25], "texture": "#texture"}, "east": {"uv": [5, 0, 8, 2.5], "texture": "#1"},
"south": {"uv": [0, 12.25, 4, 13.5], "texture": "#texture"}, "south": {"uv": [0, 8.5, 4, 11], "rotation": 180, "texture": "#texture"},
"west": {"uv": [0, 12, 4, 13.5], "texture": "#texture"}, "west": {"uv": [5, 0, 8, 2.5], "texture": "#1"},
"up": {"uv": [0, 12, 4, 13.5], "texture": "#texture"}, "up": {"uv": [0, 8, 4, 11], "texture": "#texture"}
"down": {"uv": [0, 0, 8, 6], "texture": "#missing"} }
},
{
"name": "canisterlight",
"from": [5, 11, 11],
"to": [14, 15, 15],
"faces": {
"north": {"uv": [11, 0, 15.5, 2], "rotation": 180, "texture": "#texture"},
"south": {"uv": [11, 0, 15.5, 2], "texture": "#texture"},
"up": {"uv": [11, 0, 15.5, 2], "texture": "#texture"}
},
"forge_data": { "block_light": 15, "sky_light": 15 }
},
{
"name": "canister",
"from": [14, 11, 11],
"to": [15, 15, 15],
"faces": {
"north": {"uv": [15.5, 0, 16, 2], "rotation": 180, "texture": "#texture"},
"east": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"south": {"uv": [15.5, 0, 16, 2], "texture": "#texture"},
"up": {"uv": [15.5, 0, 16, 2], "texture": "#texture"}
} }
}, },
{ {
"name": "canister", "name": "canister",
"from": [3, 11, 11], "from": [3, 11, 11],
"to": [15, 15, 15], "to": [5, 15, 15],
"faces": { "faces": {
"north": {"uv": [10, 12, 16, 13], "rotation": 180, "texture": "#texture"}, "north": {"uv": [10, 0, 11, 2], "rotation": 180, "texture": "#texture"},
"east": {"uv": [8, 12, 10, 13], "texture": "#texture"}, "south": {"uv": [10, 0, 11, 2], "texture": "#texture"},
"south": {"uv": [10, 12, 16, 13], "texture": "#texture"}, "west": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"west": {"uv": [8, 12, 10, 13], "texture": "#texture"}, "up": {"uv": [10, 0, 11, 2], "texture": "#texture"}
"up": {"uv": [10, 12, 16, 13], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
} }
}, },
{ {
"name": "canister", "name": "canister",
"from": [3, 11, 6], "from": [3, 11, 6],
"to": [5, 15, 10],
"faces": {
"south": {"uv": [10, 0, 11, 2], "texture": "#texture"},
"west": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"up": {"uv": [10, 0, 11, 2], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
}
},
{
"name": "canisterlight",
"from": [5, 11, 6],
"to": [14, 15, 10],
"faces": {
"south": {"uv": [11, 0, 15.5, 2], "texture": "#texture"},
"up": {"uv": [11, 0, 15.5, 2], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
},
"forge_data": { "block_light": 15, "sky_light": 15 }
},
{
"name": "canister",
"from": [14, 11, 6],
"to": [15, 15, 10], "to": [15, 15, 10],
"faces": { "faces": {
"north": {"uv": [0, 0, 6, 1], "texture": "#missing"}, "east": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"east": {"uv": [8, 12, 10, 13], "texture": "#texture"}, "south": {"uv": [15.5, 0, 16, 2], "texture": "#texture"},
"south": {"uv": [10, 12, 16, 13], "texture": "#texture"}, "up": {"uv": [15.5, 0, 16, 2], "texture": "#texture"},
"west": {"uv": [8, 12, 10, 13], "texture": "#texture"},
"up": {"uv": [10, 12, 16, 13], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"} "down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
} }
}, },
{ {
"name": "pipe", "name": "pipe",
"from": [1, 11, 7], "from": [0, 11, 7],
"to": [3, 14, 9], "to": [3, 14, 9],
"faces": { "faces": {
"north": {"uv": [0, 14, 1, 14.75], "texture": "#texture"}, "north": {"uv": [1, 12, 0, 13.5], "texture": "#texture"},
"east": {"uv": [0, 0, 1, 0.75], "texture": "#missing"}, "south": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"south": {"uv": [0, 14, 1, 14.75], "texture": "#texture"}, "west": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"west": {"uv": [0, 14, 1, 14.75], "texture": "#texture"}, "up": {"uv": [0, 11, 1, 12], "texture": "#texture"}
"up": {"uv": [0, 13.5, 1, 14], "texture": "#texture"},
"down": {"uv": [0, 0, 1, 0.5], "texture": "#missing"}
} }
}, },
{ {
"name": "pipe", "name": "pipe",
"from": [1, 11, 12], "from": [0, 11, 12],
"to": [3, 14, 14], "to": [3, 14, 14],
"faces": { "faces": {
"north": {"uv": [0, 14, 1, 14.75], "texture": "#texture"}, "north": {"uv": [1, 12, 0, 13.5], "texture": "#texture"},
"east": {"uv": [0, 0, 1, 0.75], "texture": "#missing"}, "south": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"south": {"uv": [0, 14, 1, 14.75], "texture": "#texture"}, "west": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"west": {"uv": [0, 14, 1, 14.75], "texture": "#texture"}, "up": {"uv": [0, 11, 1, 12], "texture": "#texture"}
"up": {"uv": [0, 13.5, 1, 14], "texture": "#texture"},
"down": {"uv": [0, 0, 1, 0.5], "texture": "#missing"}
}
},
{
"name": "frame",
"from": [0, 11, 15],
"to": [0.5, 16, 16],
"faces": {
"north": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"},
"east": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"},
"south": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"},
"west": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"},
"up": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"},
"down": {"uv": [0, 0, 0, 1], "texture": "#missing"}
} }
}, },
{ {
@ -129,12 +151,11 @@
"from": [15.5, 11, 15], "from": [15.5, 11, 15],
"to": [16, 16, 16], "to": [16, 16, 16],
"faces": { "faces": {
"north": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "north": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"east": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "east": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"south": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "south": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"west": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "west": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"up": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "up": {"uv": [2, 15, 2.5, 15.5], "texture": "#texture"}
"down": {"uv": [0, 0, 0, 1], "texture": "#missing"}
} }
}, },
{ {
@ -142,12 +163,22 @@
"from": [15.5, 15, 6], "from": [15.5, 15, 6],
"to": [16, 16, 15], "to": [16, 16, 15],
"faces": { "faces": {
"north": {"uv": [0, 0, 0, 1], "texture": "#missing"}, "east": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"east": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "west": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"south": {"uv": [0, 0, 0, 1], "texture": "#missing"}, "up": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"},
"west": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "down": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"}
"up": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, }
"down": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"} },
{
"name": "frame",
"from": [0, 11, 15],
"to": [0.5, 16, 16],
"faces": {
"north": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"east": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"south": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"west": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"up": {"uv": [2, 15, 2.5, 15.5], "texture": "#texture"}
} }
}, },
{ {
@ -155,120 +186,143 @@
"from": [0, 15, 6], "from": [0, 15, 6],
"to": [0.5, 16, 15], "to": [0.5, 16, 15],
"faces": { "faces": {
"north": {"uv": [0, 0, 0, 1], "texture": "#missing"}, "east": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"east": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "west": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"south": {"uv": [0, 0, 0, 1], "texture": "#missing"}, "up": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"},
"west": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}, "down": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"}
"up": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"},
"down": {"uv": [14.5, 0, 16, 0.75], "texture": "#texture"}
} }
}, },
{ {
"name": "body",
"from": [1, 0, 0], "from": [1, 0, 0],
"to": [15, 1, 16], "to": [15, 1, 16],
"faces": { "faces": {
"north": {"uv": [0.5, 3.75, 7.5, 4], "texture": "#texture"}, "north": {"uv": [0.5, 7.5, 7.5, 8], "texture": "#texture"},
"east": {"uv": [0, 0, 8, 0.25], "texture": "#missing"}, "south": {"uv": [8.5, 7.5, 15.5, 8], "texture": "#texture"},
"south": {"uv": [8.5, 3.75, 15.5, 4], "texture": "#texture"}, "up": {"uv": [0.5, 8.5, 7.5, 15.5], "rotation": 180, "texture": "#1"},
"west": {"uv": [0, 0, 8, 0.25], "texture": "#missing"}, "down": {"uv": [8.5, 8, 15.5, 16], "texture": "#1"}
"up": {"uv": [0.5, 8, 7.5, 12], "rotation": 180, "texture": "#texture"},
"down": {"uv": [8.5, 8, 15.5, 12], "texture": "#texture"}
} }
}, },
{ {
"name": "body",
"from": [8, 7, 0], "from": [8, 7, 0],
"to": [15, 11, 1], "to": [15, 11, 1],
"faces": { "faces": {
"north": {"uv": [0.5, 1.25, 4, 2.25], "texture": "#texture"}, "north": {"uv": [0.5, 2.5, 4, 4.5], "texture": "#texture"},
"east": {"uv": [0, 0, 0.5, 0.75], "texture": "#missing"}, "south": {"uv": [4, 2.5, 0.5, 4.5], "texture": "#texture"},
"south": {"uv": [0, 0, 3.5, 1], "texture": "#texture"}, "west": {"uv": [3.5, 2.5, 4, 4.5], "texture": "#texture"},
"west": {"uv": [3.5, 1.25, 4, 2], "texture": "#texture"}, "down": {"uv": [0.5, 4, 4, 4.5], "texture": "#texture"}
"up": {"uv": [0, 0, 3.5, 0.25], "texture": "#missing"},
"down": {"uv": [0.5, 2, 4, 2.25], "texture": "#texture"}
} }
}, },
{ {
"name": "body",
"from": [1, 9, 0], "from": [1, 9, 0],
"to": [8, 11, 1], "to": [8, 11, 1],
"faces": { "faces": {
"north": {"uv": [4, 1.25, 7.5, 1.75], "texture": "#texture"}, "north": {"uv": [4, 2.5, 7, 3.5], "texture": "#texture"},
"east": {"uv": [0, 0, 0.5, 0.5], "texture": "#missing"}, "east": {"uv": [0, 0, 0.5, 0.5], "texture": "#missing"},
"south": {"uv": [4, 1.25, 7, 1.75], "texture": "#texture"}, "south": {"uv": [4, 3, 7, 3.5], "rotation": 180, "texture": "#texture"},
"west": {"uv": [0, 0, 0.5, 0.5], "texture": "#missing"}, "up": {"uv": [4, 15.5, 7.5, 16], "texture": "#1"},
"up": {"uv": [4, 11.75, 7.5, 12], "texture": "#texture"}, "down": {"uv": [4, 3, 7, 3.5], "rotation": 180, "texture": "#texture"}
"down": {"uv": [1.5, 3.5, 5, 3.75], "texture": "#texture"}
} }
}, },
{ {
"name": "body",
"from": [1, 1, 0], "from": [1, 1, 0],
"to": [2, 9, 1], "to": [2, 9, 1],
"faces": { "faces": {
"north": {"uv": [7, 1.75, 7.5, 3.75], "texture": "#texture"}, "north": {"uv": [7, 3.5, 7.5, 7], "texture": "#texture"},
"east": {"uv": [7, 1.75, 7.5, 3.75], "texture": "#texture"}, "east": {"uv": [7, 3.5, 7.5, 7], "texture": "#texture"},
"south": {"uv": [7, 1.75, 7.5, 3.75], "texture": "#texture"}, "south": {"uv": [7, 3.5, 7.5, 7], "texture": "#texture"}
"west": {"uv": [0, 0, 0.5, 2], "texture": "#missing"},
"up": {"uv": [0, 0, 0.5, 0.25], "texture": "#missing"},
"down": {"uv": [0, 0, 0.5, 0.25], "texture": "#missing"}
} }
}, },
{ {
"name": "body",
"from": [14, 1, 0], "from": [14, 1, 0],
"to": [15, 7, 1], "to": [15, 7, 1],
"faces": { "faces": {
"north": {"uv": [0.5, 2.25, 1, 3.75], "texture": "#texture"}, "north": {"uv": [0.5, 4.5, 1, 7], "texture": "#texture"},
"east": {"uv": [0, 0, 0.5, 1.75], "texture": "#missing"}, "south": {"uv": [0.5, 4.5, 1, 7], "texture": "#texture"},
"south": {"uv": [0.5, 2.25, 1, 3.75], "texture": "#texture"}, "west": {"uv": [0.5, 4.5, 1, 7], "texture": "#texture"}
"west": {"uv": [0.5, 2.25, 1, 3.75], "texture": "#texture"},
"up": {"uv": [0.5, 3.25, 1, 3.5], "texture": "#texture"},
"down": {"uv": [0, 0, 0.5, 0.25], "texture": "#missing"}
} }
}, },
{ {
"name": "body",
"from": [2, 1, 0], "from": [2, 1, 0],
"to": [14, 2, 1], "to": [14, 2, 1],
"faces": { "faces": {
"north": {"uv": [1, 3.5, 7, 3.75], "texture": "#texture"}, "north": {"uv": [1, 7, 7, 7.5], "texture": "#texture"},
"east": {"uv": [0, 0, 0.5, 0.25], "texture": "#missing"}, "south": {"uv": [1, 7, 7, 7.5], "texture": "#texture"},
"south": {"uv": [1, 3.5, 7, 3.75], "texture": "#texture"}, "up": {"uv": [1, 7, 7, 7.5], "texture": "#texture"}
"west": {"uv": [0, 0, 0.5, 0.25], "texture": "#missing"},
"up": {"uv": [1, 3.5, 7, 3.75], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 0.25], "texture": "#missing"}
} }
}, },
{ {
"name": "body",
"from": [1, 10, 1], "from": [1, 10, 1],
"to": [15, 11, 15], "to": [15, 11, 15],
"faces": { "faces": {
"north": {"uv": [0, 0, 7, 0.25], "texture": "#missing"}, "up": {"uv": [0.5, 8.5, 7.5, 15.5], "rotation": 180, "texture": "#1"},
"east": {"uv": [0, 0, 7, 0.25], "texture": "#missing"}, "down": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"}
"south": {"uv": [0, 0, 7, 0.25], "texture": "#missing"},
"west": {"uv": [0, 0, 7, 0.25], "texture": "#missing"},
"up": {"uv": [0.5, 8.25, 7.5, 11.75], "rotation": 180, "texture": "#texture"},
"down": {"uv": [8.5, 8.25, 15.5, 11.75], "texture": "#texture"}
} }
}, },
{ {
"name": "body",
"from": [1, 1, 15], "from": [1, 1, 15],
"to": [15, 11, 16], "to": [15, 11, 16],
"faces": { "faces": {
"north": {"uv": [8.5, 9, 15.5, 11.5], "texture": "#texture"}, "north": {"uv": [8.5, 9.5, 15.5, 14.5], "texture": "#1"},
"east": {"uv": [0, 0, 0.5, 2.5], "texture": "#missing"}, "south": {"uv": [8.5, 2.5, 15.5, 7.5], "texture": "#texture"},
"south": {"uv": [8.5, 1.25, 15.5, 3.75], "texture": "#texture"}, "up": {"uv": [0.5, 8, 7.5, 8.5], "texture": "#1"}
"west": {"uv": [0, 0, 0.5, 2.5], "texture": "#missing"},
"up": {"uv": [0.5, 8, 7.5, 8.25], "texture": "#texture"},
"down": {"uv": [0, 0, 7, 0.25], "texture": "#missing"}
} }
}, },
{ {
"name": "body",
"from": [3, 1, 3], "from": [3, 1, 3],
"to": [13, 2, 13], "to": [13, 2, 13],
"faces": { "faces": {
"north": {"uv": [10.5, 13, 16, 13.25], "texture": "#texture"}, "north": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"east": {"uv": [10.5, 13, 16, 13.25], "texture": "#texture"}, "east": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"south": {"uv": [10.5, 13, 16, 13.25], "texture": "#texture"}, "south": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"west": {"uv": [10.5, 13, 16, 13.25], "texture": "#texture"}, "west": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"up": {"uv": [10.5, 13, 16, 15.75], "texture": "#texture"}, "up": {"uv": [10.5, 8, 16, 13.5], "texture": "#texture"}
"down": {"uv": [0, 0, 0.5, 0.25], "texture": "#missing"} }
},
{
"from": [-2, 10, 7.1],
"to": [0, 14, 8.9],
"rotation": {"angle": 22.5, "axis": "z", "origin": [0, 14, 8]},
"faces": {
"north": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"south": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"west": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"up": {"uv": [8.5, 8.5, 9.5, 9.5], "texture": "#texture"},
"down": {"uv": [8.5, 11.5, 9.5, 12.5], "texture": "#texture"}
}
},
{
"name": "pipestuff",
"from": [-2, 10, 12.1],
"to": [0, 14, 13.9],
"rotation": {"angle": 22.5, "axis": "z", "origin": [0, 14, 13]},
"faces": {
"north": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"south": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"west": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"up": {"uv": [8.5, 8.5, 9.5, 9.5], "texture": "#texture"},
"down": {"uv": [8.5, 11.5, 9.5, 12.5], "texture": "#texture"}
}
},
{
"name": "pipestuff",
"from": [-2, 10, 12.1],
"to": [0, 14, 13.9],
"rotation": {"angle": 22.5, "axis": "z", "origin": [0, 14, 8]},
"faces": {
"north": {"uv": [8.5, 13.75, 9.5, 14.75], "texture": "#texture"},
"south": {"uv": [8.5, 13.75, 9.5, 14.75], "texture": "#texture"},
"west": {"uv": [8.5, 13.75, 9.5, 14.75], "texture": "#texture"},
"up": {"uv": [8.5, 13.25, 9.5, 13.75], "texture": "#texture"},
"down": {"uv": [8.5, 14.75, 9.5, 15.25], "texture": "#texture"}
} }
} }
] ]

View File

@ -1,5 +1,5 @@
{ {
"parent": "overdrive_that_matters:block/matter_replicator_working", "parent": "overdrive_that_matters:block/matter_replicator",
"texture_size": [32, 32], "texture_size": [32, 32],
"textures": { "textures": {
"1": "overdrive_that_matters:block/matter_replicator_base", "1": "overdrive_that_matters:block/matter_replicator_base",

View File

@ -1,5 +1,5 @@
{ {
"parent": "overdrive_that_matters:block/matter_replicator_working", "parent": "overdrive_that_matters:block/matter_replicator",
"texture_size": [32, 32], "texture_size": [32, 32],
"textures": { "textures": {
"1": "overdrive_that_matters:block/matter_replicator_base", "1": "overdrive_that_matters:block/matter_replicator_base",

View File

@ -1,329 +1,9 @@
{ {
"credit": "Made with Blockbench", "parent": "overdrive_that_matters:block/matter_replicator",
"parent": "block/block",
"render_type": "translucent",
"texture_size": [32, 32], "texture_size": [32, 32],
"textures": { "textures": {
"1": "overdrive_that_matters:block/matter_replicator_base", "1": "overdrive_that_matters:block/matter_replicator_base",
"particle": "overdrive_that_matters:block/matter_replicator_base", "particle": "overdrive_that_matters:block/matter_replicator_base",
"texture": "overdrive_that_matters:block/matter_replicator" "texture": "overdrive_that_matters:block/matter_replicator"
}, }
"elements": [
{
"name": "body",
"from": [15, 0, 0],
"to": [16, 11, 16],
"faces": {
"north": {"uv": [0, 2.5, 0.5, 8], "texture": "#texture"},
"east": {"uv": [0, 2.5, 8, 8], "texture": "#1"},
"south": {"uv": [15.5, 2.5, 16, 8], "texture": "#texture"},
"west": {"uv": [8, 9.5, 16, 15], "texture": "#1"},
"up": {"uv": [0, 8, 0.5, 16], "rotation": 180, "texture": "#1"},
"down": {"uv": [8, 8, 8.5, 16], "texture": "#1"}
}
},
{
"name": "body",
"from": [0, 0, 0],
"to": [1, 11, 16],
"faces": {
"north": {"uv": [7.5, 2.5, 8, 8], "texture": "#texture"},
"east": {"uv": [8, 9.5, 16, 15], "texture": "#1"},
"south": {"uv": [8, 2.5, 8.5, 8], "texture": "#1"},
"west": {"uv": [8, 2.5, 16, 8], "texture": "#1"},
"up": {"uv": [7.5, 8, 8, 16], "rotation": 180, "texture": "#1"},
"down": {"uv": [15.5, 8, 16, 16], "texture": "#1"}
}
},
{
"name": "controlpanel",
"from": [0, 11, 1],
"to": [8, 16, 6],
"faces": {
"north": {"uv": [4, 10.5, 8, 13], "texture": "#texture"},
"south": {"uv": [4, 13, 8, 15.5], "texture": "#texture"},
"west": {"uv": [8.5, 0, 11, 2.5], "texture": "#1"},
"up": {"uv": [4, 8, 8, 10.5], "texture": "#texture"}
}
},
{
"name": "computer",
"from": [8, 11, 0],
"to": [16, 16, 6],
"faces": {
"north": {"uv": [0, 0, 4, 2.5], "texture": "#texture"},
"east": {"uv": [5, 0, 8, 2.5], "texture": "#1"},
"south": {"uv": [0, 8.5, 4, 11], "rotation": 180, "texture": "#texture"},
"west": {"uv": [5, 0, 8, 2.5], "texture": "#1"},
"up": {"uv": [0, 8, 4, 11], "texture": "#texture"}
}
},
{
"name": "canisterlight",
"from": [5, 11, 11],
"to": [14, 15, 15],
"faces": {
"north": {"uv": [11, 0, 15.5, 2], "rotation": 180, "texture": "#texture"},
"south": {"uv": [11, 0, 15.5, 2], "texture": "#texture"},
"up": {"uv": [11, 0, 15.5, 2], "texture": "#texture"}
},
"forge_data": { "block_light": 15, "sky_light": 15 }
},
{
"name": "canister",
"from": [14, 11, 11],
"to": [15, 15, 15],
"faces": {
"north": {"uv": [15.5, 0, 16, 2], "rotation": 180, "texture": "#texture"},
"east": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"south": {"uv": [15.5, 0, 16, 2], "texture": "#texture"},
"up": {"uv": [15.5, 0, 16, 2], "texture": "#texture"}
}
},
{
"name": "canister",
"from": [3, 11, 11],
"to": [5, 15, 15],
"faces": {
"north": {"uv": [10, 0, 11, 2], "rotation": 180, "texture": "#texture"},
"south": {"uv": [10, 0, 11, 2], "texture": "#texture"},
"west": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"up": {"uv": [10, 0, 11, 2], "texture": "#texture"}
}
},
{
"name": "canister",
"from": [3, 11, 6],
"to": [5, 15, 10],
"faces": {
"south": {"uv": [10, 0, 11, 2], "texture": "#texture"},
"west": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"up": {"uv": [10, 0, 11, 2], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
}
},
{
"name": "canisterlight",
"from": [5, 11, 6],
"to": [14, 15, 10],
"faces": {
"south": {"uv": [11, 0, 15.5, 2], "texture": "#texture"},
"up": {"uv": [11, 0, 15.5, 2], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
},
"forge_data": { "block_light": 15, "sky_light": 15 }
},
{
"name": "canister",
"from": [14, 11, 6],
"to": [15, 15, 10],
"faces": {
"east": {"uv": [8, 0, 10, 2], "texture": "#texture"},
"south": {"uv": [15.5, 0, 16, 2], "texture": "#texture"},
"up": {"uv": [15.5, 0, 16, 2], "texture": "#texture"},
"down": {"uv": [0, 0, 6, 1], "texture": "#missing"}
}
},
{
"name": "pipe",
"from": [0, 11, 7],
"to": [3, 14, 9],
"faces": {
"north": {"uv": [1, 12, 0, 13.5], "texture": "#texture"},
"south": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"west": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"up": {"uv": [0, 11, 1, 12], "texture": "#texture"}
}
},
{
"name": "pipe",
"from": [0, 11, 12],
"to": [3, 14, 14],
"faces": {
"north": {"uv": [1, 12, 0, 13.5], "texture": "#texture"},
"south": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"west": {"uv": [0, 12, 1, 13.5], "texture": "#texture"},
"up": {"uv": [0, 11, 1, 12], "texture": "#texture"}
}
},
{
"name": "frame",
"from": [15.5, 11, 15],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"east": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"south": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"west": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"up": {"uv": [2, 15, 2.5, 15.5], "texture": "#texture"}
}
},
{
"name": "frame",
"from": [15.5, 15, 6],
"to": [16, 16, 15],
"faces": {
"east": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"west": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"up": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"},
"down": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"}
}
},
{
"name": "frame",
"from": [0, 11, 15],
"to": [0.5, 16, 16],
"faces": {
"north": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"east": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"south": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"west": {"uv": [0, 15, 2.5, 15.5], "rotation": 270, "texture": "#texture"},
"up": {"uv": [2, 15, 2.5, 15.5], "texture": "#texture"}
}
},
{
"name": "frame",
"from": [0, 15, 6],
"to": [0.5, 16, 15],
"faces": {
"east": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"west": {"uv": [0, 15.5, 4.5, 16], "texture": "#texture"},
"up": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"},
"down": {"uv": [0, 15.5, 4.5, 16], "rotation": 90, "texture": "#texture"}
}
},
{
"name": "body",
"from": [1, 0, 0],
"to": [15, 1, 16],
"faces": {
"north": {"uv": [0.5, 7.5, 7.5, 8], "texture": "#texture"},
"south": {"uv": [8.5, 7.5, 15.5, 8], "texture": "#texture"},
"up": {"uv": [0.5, 8.5, 7.5, 15.5], "rotation": 180, "texture": "#1"},
"down": {"uv": [8.5, 8, 15.5, 16], "texture": "#1"}
}
},
{
"name": "body",
"from": [8, 7, 0],
"to": [15, 11, 1],
"faces": {
"north": {"uv": [0.5, 2.5, 4, 4.5], "texture": "#texture"},
"south": {"uv": [4, 2.5, 0.5, 4.5], "texture": "#texture"},
"west": {"uv": [3.5, 2.5, 4, 4.5], "texture": "#texture"},
"down": {"uv": [0.5, 4, 4, 4.5], "texture": "#texture"}
}
},
{
"name": "body",
"from": [1, 9, 0],
"to": [8, 11, 1],
"faces": {
"north": {"uv": [4, 2.5, 7, 3.5], "texture": "#texture"},
"east": {"uv": [0, 0, 0.5, 0.5], "texture": "#missing"},
"south": {"uv": [4, 3, 7, 3.5], "rotation": 180, "texture": "#texture"},
"up": {"uv": [4, 15.5, 7.5, 16], "texture": "#1"},
"down": {"uv": [4, 3, 7, 3.5], "rotation": 180, "texture": "#texture"}
}
},
{
"name": "body",
"from": [1, 1, 0],
"to": [2, 9, 1],
"faces": {
"north": {"uv": [7, 3.5, 7.5, 7], "texture": "#texture"},
"east": {"uv": [7, 3.5, 7.5, 7], "texture": "#texture"},
"south": {"uv": [7, 3.5, 7.5, 7], "texture": "#texture"}
}
},
{
"name": "body",
"from": [14, 1, 0],
"to": [15, 7, 1],
"faces": {
"north": {"uv": [0.5, 4.5, 1, 7], "texture": "#texture"},
"south": {"uv": [0.5, 4.5, 1, 7], "texture": "#texture"},
"west": {"uv": [0.5, 4.5, 1, 7], "texture": "#texture"}
}
},
{
"name": "body",
"from": [2, 1, 0],
"to": [14, 2, 1],
"faces": {
"north": {"uv": [1, 7, 7, 7.5], "texture": "#texture"},
"south": {"uv": [1, 7, 7, 7.5], "texture": "#texture"},
"up": {"uv": [1, 7, 7, 7.5], "texture": "#texture"}
}
},
{
"name": "body",
"from": [1, 10, 1],
"to": [15, 11, 15],
"faces": {
"up": {"uv": [0.5, 8.5, 7.5, 15.5], "rotation": 180, "texture": "#1"},
"down": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"}
}
},
{
"name": "body",
"from": [1, 1, 15],
"to": [15, 11, 16],
"faces": {
"north": {"uv": [8.5, 9.5, 15.5, 14.5], "texture": "#1"},
"south": {"uv": [8.5, 2.5, 15.5, 7.5], "texture": "#texture"},
"up": {"uv": [0.5, 8, 7.5, 8.5], "texture": "#1"}
}
},
{
"name": "body",
"from": [3, 1, 3],
"to": [13, 2, 13],
"faces": {
"north": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"east": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"south": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"west": {"uv": [10.5, 13, 16, 13.5], "texture": "#texture"},
"up": {"uv": [10.5, 8, 16, 13.5], "texture": "#texture"}
}
},
{
"from": [-2, 10, 7.1],
"to": [0, 14, 8.9],
"rotation": {"angle": 22.5, "axis": "z", "origin": [0, 14, 8]},
"faces": {
"north": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"south": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"west": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"up": {"uv": [8.5, 8.5, 9.5, 9.5], "texture": "#texture"},
"down": {"uv": [8.5, 11.5, 9.5, 12.5], "texture": "#texture"}
}
},
{
"name": "pipestuff",
"from": [-2, 10, 12.1],
"to": [0, 14, 13.9],
"rotation": {"angle": 22.5, "axis": "z", "origin": [0, 14, 13]},
"faces": {
"north": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"south": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"west": {"uv": [8.5, 9.5, 9.5, 11.5], "texture": "#texture"},
"up": {"uv": [8.5, 8.5, 9.5, 9.5], "texture": "#texture"},
"down": {"uv": [8.5, 11.5, 9.5, 12.5], "texture": "#texture"}
}
},
{
"name": "pipestuff",
"from": [-2, 10, 12.1],
"to": [0, 14, 13.9],
"rotation": {"angle": 22.5, "axis": "z", "origin": [0, 14, 8]},
"faces": {
"north": {"uv": [8.5, 13.75, 9.5, 14.75], "texture": "#texture"},
"south": {"uv": [8.5, 13.75, 9.5, 14.75], "texture": "#texture"},
"west": {"uv": [8.5, 13.75, 9.5, 14.75], "texture": "#texture"},
"up": {"uv": [8.5, 13.25, 9.5, 13.75], "texture": "#texture"},
"down": {"uv": [8.5, 14.75, 9.5, 15.25], "texture": "#texture"}
}
}
]
} }

View File

@ -1,3 +0,0 @@
{
"parent": "overdrive_that_matters:block/matter_replicator_working"
}

View File

@ -1,3 +0,0 @@
{
"parent": "overdrive_that_matters:block/matter_scanner_working"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

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