This commit is contained in:
DBotThePony 2025-02-27 19:19:51 +07:00
commit 858e95e7bf
Signed by: DBot
GPG Key ID: DCC23B5715498507
102 changed files with 886 additions and 43 deletions

View File

@ -0,0 +1,3 @@
#!/bin/bash
node ./base_with_mask.js block/essence_storage block/essence_storage_mask essence_storage

File diff suppressed because one or more lines are too long

View File

@ -93,6 +93,11 @@ object DataGen {
blockStateProvider.simpleBlockM(*blocks)
}
fun decorativeCubeAllCutout(vararg blocks: Block) {
blockModelProvider.decorativeCubeAllCutout(*blocks)
blockStateProvider.simpleBlockM(*blocks)
}
fun decorativeCubeAll(subdir: String, vararg blocks: Block) {
blockModelProvider.decorativeCubeAll(subdir, *blocks)
blockStateProvider.simpleBlockM(*blocks)

View File

@ -35,6 +35,7 @@ fun addDecorativeData(blockStateProvider: MatteryBlockStateProvider, itemModelPr
}
DataGen.decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK)
DataGen.decorativeCubeAllCutout(MBlocks.METAL_MESH)
DataGen.decoratives(MRegistry.TRITANIUM_BLOCK)

View File

@ -23,16 +23,25 @@ fun addBlockModels(provider: MatteryBlockModelProvider) {
cubeAll(MBlocks.FLYWHEEL_HOUSING)
column(MBlocks.FLYWHEEL_BEARING, "block/flywheel_bearing","block/flywheel_bearing_top")
column(MBlocks.FLYWHEEL_SHAFT, "block/flywheel_shaft","block/flywheel_shaft_top")
orientable(MBlocks.FLYWHEEL_BATTERY,"block/flywheel_housing","block/flywheel_controller")
column(MBlocks.GENERATOR_BLOCK, "block/generator_block","block/generator_block_top")
cubeAllFramed("modular_frame", "block/modular_frame")
cubeAllFramed("heavy_modular_frame", "block/heavy_modular_frame")
cubeAll(MBlocks.ENERGY_INPUT_INTERFACE)
cubeAll(MBlocks.ENERGY_OUTPUT_INTERFACE)
orientable(MBlocks.MATTER_INPUT_HATCH,"block/hatch","block/matter_input_hatch")
orientable(MBlocks.MATTER_OUTPUT_HATCH,"block/hatch","block/matter_output_hatch")
cubeAll(MBlocks.TRITANIUM_HULL)
orientable(MBlocks.ENERGY_INPUT_HATCH,"block/hatch","block/energy_input_hatch")
orientable(MBlocks.ENERGY_OUTPUT_HATCH,"block/hatch","block/energy_output_hatch")
orientable(MBlocks.MATTER_INPUT_HATCH,"block/tritanium_hull","block/matter_input_hatch")
orientable(MBlocks.MATTER_OUTPUT_HATCH,"block/tritanium_hull","block/matter_output_hatch")
orientable(MBlocks.ENERGY_INPUT_HATCH,"block/tritanium_hull","block/energy_input_hatch")
orientable(MBlocks.ENERGY_OUTPUT_HATCH,"block/tritanium_hull","block/energy_output_hatch")
orientable(MBlocks.ITEM_INPUT_HATCH,"block/tritanium_hull","block/item_input_hatch")
orientable(MBlocks.ITEM_OUTPUT_HATCH,"block/tritanium_hull","block/item_output_hatch")
cable("crude_energy_cable", "block/power_cable_0", powered = true)
cable("regular_energy_cable", "block/power_cable_1", powered = true)

View File

@ -31,7 +31,6 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
provider.ore(MBlocks.TRITANIUM_ORE)
provider.ore(MBlocks.TRITANIUM_RAW_BLOCK)
provider.block(MBlocks.TRITANIUM_INGOT_BLOCK)
provider.block(MBlocks.METAL_MESH)
provider.ore(MBlocks.DILITHIUM_ORE)
provider.ore(MBlocks.DEEPSLATE_DILITHIUM_ORE)
@ -105,6 +104,7 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
provider.block(MBlocks.MATTER_DECOMPOSER.values)
provider.block(MBlocks.MATTER_REPLICATOR.values)
provider.block(MBlocks.MATTER_ENTANGLER)
provider.block(MBlocks.PLATE_PRESS.values)
provider.block(MBlocks.TWIN_PLATE_PRESS.values)
provider.block(MBlocks.GRAVITATION_STABILIZER)
@ -335,11 +335,18 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
return@forAllStates generated.toTypedArray()
}
}
provider.block(MBlocks.TRITANIUM_HULL)
provider.block(MBlocks.FLYWHEEL_HOUSING)
provider.block(MBlocks.FLYWHEEL_BEARING)
provider.block(MBlocks.FLYWHEEL_SHAFT)
provider.block(MBlocks.FLYWHEEL_BATTERY)
provider.block(MBlocks.GENERATOR_BLOCK)
provider.block(MBlocks.MODULAR_FRAME)
provider.block(MBlocks.HEAVY_MODULAR_FRAME)
provider.block(MBlocks.ENERGY_INPUT_INTERFACE)
provider.block(MBlocks.ENERGY_OUTPUT_INTERFACE)
@ -348,4 +355,8 @@ fun addBlockStates(provider: MatteryBlockStateProvider) {
provider.block(MBlocks.MATTER_INPUT_HATCH)
provider.block(MBlocks.MATTER_OUTPUT_HATCH)
provider.block(MBlocks.ITEM_INPUT_HATCH)
provider.block(MBlocks.ITEM_OUTPUT_HATCH)
}

View File

@ -192,6 +192,7 @@ fun addItemModels(provider: MatteryItemModelProvider) {
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_ENTANGLER, "matter_entangler_idle")
provider.coloredWithBaseBlock(MItems.DRIVE_VIEWER, "drive_viewer", "_idle")
provider.coloredWithBaseBlock(MItems.MATTER_DECOMPOSER, "matter_decomposer", "_idle")
provider.coloredWithBaseBlock(MItems.ENERGY_SERVO, "energy_servo")
@ -237,6 +238,9 @@ fun addItemModels(provider: MatteryItemModelProvider) {
provider.block(MItems.FLYWHEEL_HOUSING)
provider.block(MItems.FLYWHEEL_BEARING)
provider.block(MItems.FLYWHEEL_SHAFT)
provider.block(MItems.FLYWHEEL_BATTERY)
provider.block(MItems.TRITANIUM_HULL)
provider.block(MItems.GENERATOR_BLOCK)
provider.block(MItems.ENERGY_INPUT_INTERFACE)
@ -248,6 +252,12 @@ fun addItemModels(provider: MatteryItemModelProvider) {
provider.block(MItems.MATTER_INPUT_HATCH)
provider.block(MItems.MATTER_OUTPUT_HATCH)
provider.block(MItems.ITEM_INPUT_HATCH)
provider.block(MItems.ITEM_OUTPUT_HATCH)
provider.block(MItems.MODULAR_FRAME)
provider.block(MItems.HEAVY_MODULAR_FRAME)
MItems.TRITANIUM_ANVIL.values.forEach { provider.blocks(it) }
for ((color, item) in MItems.CARGO_CRATE_MINECARTS) {

View File

@ -549,13 +549,12 @@ private fun blocks(provider: MatteryLanguageProvider) {
addBlock(MBlocks.DRIVE_VIEWER.values, "Drive Viewer")
add(MBlocks.BLACK_HOLE, "Local Anomalous Spacetime Dilation Singular Point")
add(MBlocks.BLACK_HOLE_GENERATOR, "Matter Acceleration Power Generator")
add(MBlocks.FLYWHEEL_SHAFT, "Flywheel Shaft")
add(MBlocks.FLYWHEEL_SHAFT, "desc", "Placed between bearings, safe for decoration")
add(MBlocks.FLYWHEEL_BEARING, "Flywheel Bearing")
add(MBlocks.FLYWHEEL_BEARING, "desc", "Replaces center block of housing at bottom and top, safe for decoration")
add(MBlocks.FLYWHEEL_BEARING, "desc", "Replaces top and bottom housing blocks in the center, safe for decoration")
add(MBlocks.FLYWHEEL_BATTERY, "Flywheel Controller")
add(MBlocks.FLYWHEEL_BATTERY, "desc", "Multiblock controller, requires housing, bearing, shaft, generator and core material of choice")
@ -570,7 +569,10 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.FLYWHEEL_HOUSING, "desc", "5xNx5 multiblock casing, safe for decoration")
add(MBlocks.GENERATOR_BLOCK, "Generator Block")
add(MBlocks.GENERATOR_BLOCK, "desc", "Part of multiblock, safe for decoration")
add(MBlocks.GENERATOR_BLOCK, "desc", "Part of a multiblock, safe for decoration")
add(MBlocks.MODULAR_FRAME, "Modular Frame")
add(MBlocks.HEAVY_MODULAR_FRAME, "Heavy Modular Frame")
add(MBlocks.ENERGY_INPUT_INTERFACE, "Energy Input Interface")
add(MBlocks.ENERGY_OUTPUT_INTERFACE, "Energy Output Interface")
@ -582,6 +584,9 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.ITEM_OUTPUT_HATCH, "Item Output Hatch")
add(MBlocks.MATTER_OUTPUT_HATCH, "Matter Output Hatch")
add(MBlocks.BLACK_HOLE_GENERATOR, "Matter Acceleration Power Generator")
add(MBlocks.TRITANIUM_HULL, "Tritanium Hull")
add(MBlocks.TRITANIUM_HULL, "desc", "A sturdy part of a multiblock, safe for decoration")
add(MBlocks.MATTER_INJECTOR, "Matter Injector")
add(MBlocks.ANTIMATTER_INJECTOR, "Antimatter Injector")
add(MBlocks.HIGH_ENERGY_PARTICLE_COLLECTOR, "High Energy Particle Collector")
@ -809,6 +814,8 @@ private fun items(provider: MatteryLanguageProvider) {
add(MItems.MIRROR, "desc", "I can clearly see my own reflection in this mirror")
add(MItems.REINFORCED_TRITANIUM_PLATE, "Reinforced Tritanium Plate")
add(MItems.REINFORCED_TRITANIUM_PLATE, "desc", "An armor plate, reinforced to withstand great kinetic forces")
add(MItems.REINFORCED_IRON_PLATE, "Reinforced Iron Plate")
add(MItems.REINFORCED_IRON_PLATE, "desc", "A sturdier and more durable Iron Plate")
add(MItems.ARMOR_ASSEMBLY, "Armor assembly")
add(MItems.CARBON_MESH, "Carbon Mesh")

View File

@ -555,13 +555,12 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.INFINITE_WATER_SOURCE, "desc", "Выталкивает воду в соседние блоки автоматически")
add(MBlocks.BLACK_HOLE, "Локализированная сингулярная точка аномального искажения пространства-времени")
add(MBlocks.BLACK_HOLE_GENERATOR, "Генератор энергии ускорением материи")
add(MBlocks.FLYWHEEL_SHAFT, "Маховый вал")
add(MBlocks.FLYWHEEL_SHAFT, "desc", "Устанавливается между подшипников")
add(MBlocks.FLYWHEEL_BEARING, "Маховый подшипник")
add(MBlocks.FLYWHEEL_BEARING, "desc", "Заменяет центральный блок корпуса снизу и сверху")
add(MBlocks.FLYWHEEL_BEARING, "desc", "Заменяет центральный блок корпуса сверху и снизу")
add(MBlocks.FLYWHEEL_BATTERY, "Блок управления маховым хранилищем энергии")
add(MBlocks.FLYWHEEL_BATTERY, "desc", "Мультиблок, который требует подшипники, корпус, вал, блоки генераторов и ядро из материала на ваше усмотрение")
@ -575,8 +574,11 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.FLYWHEEL_HOUSING, "Корпус махового хранилища энергии")
add(MBlocks.FLYWHEEL_HOUSING, "desc", "Мультиблок структура с размерностью 5xNx5")
add(MBlocks.GENERATOR_BLOCK, "Generator Block")
add(MBlocks.GENERATOR_BLOCK, "desc", "Part of multiblock, safe for decoration")
add(MBlocks.GENERATOR_BLOCK, "Генераторный блок")
add(MBlocks.GENERATOR_BLOCK, "desc", "Часть мультиблока, безопасна в качестве декорации")
add(MBlocks.MODULAR_FRAME, "Модульный каркас")
add(MBlocks.HEAVY_MODULAR_FRAME, "Тяжёлый модульный каркас")
add(MBlocks.ENERGY_INPUT_INTERFACE, "Входной энергетический интерфейс")
add(MBlocks.ENERGY_OUTPUT_INTERFACE, "Выходной энергетический интерфейс")
@ -588,6 +590,9 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.ITEM_OUTPUT_HATCH, "Выходной предметный клапан")
add(MBlocks.MATTER_OUTPUT_HATCH, "Выходной клапан материи")
add(MBlocks.BLACK_HOLE_GENERATOR, "Генератор энергии ускорением материи")
add(MBlocks.TRITANIUM_HULL, "Тритановый корпус")
add(MBlocks.TRITANIUM_HULL, "desc", "Прочная часть мультиблока, безопасна в качестве декорации")
add(MBlocks.MATTER_INJECTOR, "Инжектор материи")
add(MBlocks.ANTIMATTER_INJECTOR, "Инжектор анти-материи")
add(MBlocks.HIGH_ENERGY_PARTICLE_COLLECTOR, "Коллектор высокоэнергичных частиц")
@ -802,6 +807,8 @@ private fun items(provider: MatteryLanguageProvider) {
add(MItems.MIRROR, "desc", "Я могу очень отчётливо видеть своё отражение в этом зеркале")
add(MItems.REINFORCED_TRITANIUM_PLATE, "Укреплённая тритановая пластина")
add(MItems.REINFORCED_TRITANIUM_PLATE, "desc", "Бронированная пластина, усиленная чтобы выдержать большие кинетические силы")
add(MItems.REINFORCED_IRON_PLATE, "Укреплённая железная пластина")
add(MItems.REINFORCED_IRON_PLATE, "desc", "Более надёжная и прочная железная пластина")
add(MItems.ARMOR_ASSEMBLY, "Стройка брони")
add(MItems.CARBON_MESH, "Углеродная сетка")

View File

@ -35,6 +35,8 @@ fun addDecorativeLoot(lootTables: LootTables) {
lootTables.dropsSelf(MBlocks.METAL_MESH) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.METAL_RAILING) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.METAL_JUNK) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.TRITANIUM_RAW_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_BLOCK.values) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.TRITANIUM_STRIPED_WALL.values) { condition(ExplosionCondition.survivesExplosion()) }
@ -48,7 +50,12 @@ fun addDecorativeLoot(lootTables: LootTables) {
lootTables.dropsSelf(MBlocks.TRITANIUM_INGOT_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.TRITANIUM_BARS) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.TRITANIUM_HULL) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.GENERATOR_BLOCK) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.MODULAR_FRAME) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.HEAVY_MODULAR_FRAME) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.FLYWHEEL_SHAFT) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.FLYWHEEL_HOUSING) { condition(ExplosionCondition.survivesExplosion()) }
lootTables.dropsSelf(MBlocks.FLYWHEEL_BEARING) { condition(ExplosionCondition.survivesExplosion()) }

View File

@ -59,6 +59,7 @@ fun addMachineLoot(lootTables: LootTables) {
lootTables.tile(MBlocks.MATTER_BOTTLER.values)
lootTables.tile(MBlocks.BLACK_HOLE_GENERATOR)
lootTables.tile(MBlocks.FLYWHEEL_BATTERY)
lootTables.dropsSelf(listOf(
@ -69,10 +70,13 @@ fun addMachineLoot(lootTables: LootTables) {
lootTables.tile(MBlocks.ITEM_INPUT_HATCH)
lootTables.tile(MBlocks.ITEM_OUTPUT_HATCH)
lootTables.tile(MBlocks.ENERGY_INPUT_HATCH)
lootTables.tile(MBlocks.ENERGY_OUTPUT_HATCH)
lootTables.tile(MBlocks.MATTER_INPUT_HATCH)
lootTables.tile(MBlocks.MATTER_OUTPUT_HATCH)
lootTables.tile(MBlocks.ENERGY_INPUT_INTERFACE)
lootTables.tile(MBlocks.ENERGY_OUTPUT_INTERFACE)
}

View File

@ -34,6 +34,22 @@ class MatteryBlockModelProvider(event: GatherDataEvent) : BlockModelProvider(eve
}
}
fun cubeAllCutout(vararg blocks: Block) {
for (block in blocks) {
exec {
cubeAll(block.registryName!!.path, modLocation("block/${block.registryName!!.path}")).renderType("cutout_mipped")
}
}
}
fun cubeAllFramed(modelName: String, textureName: String) {
exec {
withExistingParent(modelName, modLocation("block/frame_block"))
.texture("texture", textureName)
.renderType("cutout_mipped")
}
}
fun decorativeGlassAll(blocks: Collection<Block>) {
for (block in blocks) {
exec {
@ -58,6 +74,14 @@ class MatteryBlockModelProvider(event: GatherDataEvent) : BlockModelProvider(eve
}
}
fun decorativeCubeAllCutout(vararg blocks: Block) {
for (block in blocks) {
exec {
cubeAll(block.registryName!!.path, modLocation("block/decorative/${block.registryName!!.path}")).renderType("cutout_mipped")
}
}
}
fun decorativeCubeAll(subdir: String, vararg blocks: Block) {
for (block in blocks) {
exec {

View File

@ -262,11 +262,19 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) {
.build(consumer)
MatteryRecipe(MItems.REINFORCED_TRITANIUM_PLATE, category = RecipeCategory.MISC)
.rowB(MItemTags.CARBON_PLATES)
.row(MItemTags.CARBON_PLATES, MItemTags.TRITANIUM_PLATES, MItemTags.CARBON_PLATES)
.rowB(MItemTags.CARBON_PLATES)
.unlockedBy(MItemTags.TRITANIUM_PLATES)
.build(consumer)
.rowB(MItemTags.CARBON_PLATES)
.row(MItemTags.CARBON_PLATES, MItemTags.TRITANIUM_PLATES, MItemTags.CARBON_PLATES)
.rowB(MItemTags.CARBON_PLATES)
.unlockedBy(MItemTags.TRITANIUM_PLATES)
.build(consumer)
MatteryRecipe(MItems.REINFORCED_IRON_PLATE, category = RecipeCategory.MISC)
.rowB(MItemTags.CARBON_PLATES)
.row(MItemTags.CARBON_PLATES, MItemTags.IRON_PLATES, MItemTags.CARBON_PLATES)
.rowB(MItemTags.CARBON_PLATES)
.unlockedBy(MItemTags.IRON_PLATES)
.build(consumer)
MatteryRecipe(MItems.ARMOR_ASSEMBLY, category = RecipeCategory.MISC)
.row(MItemTags.CARBON_PLATES, MItemTags.IRON_PLATES, MItemTags.CARBON_PLATES)
.row(MItemTags.IRON_PLATES, Items.DIAMOND, MItemTags.IRON_PLATES)

View File

@ -116,6 +116,18 @@ fun addMultiblockRecipes(consumer: RecipeOutput) {
.row(MItems.ELECTRIC_PARTS, MItems.ELECTROMOTOR, MItems.ELECTRIC_PARTS)
.build(consumer)
MatteryRecipe(MItems.MODULAR_FRAME, count = 4, category = machinesCategory)
.row(MItemTags.IRON_PLATES, Tags.Items.INGOTS_IRON, MItemTags.IRON_PLATES)
.rowAC(Tags.Items.INGOTS_IRON, Tags.Items.INGOTS_IRON)
.row(MItemTags.IRON_PLATES, Tags.Items.INGOTS_IRON, MItemTags.IRON_PLATES)
.build(consumer)
MatteryRecipe(MItems.HEAVY_MODULAR_FRAME, count = 2, category = machinesCategory)
.rowB(MItems.REINFORCED_IRON_PLATE)
.row(MItems.REINFORCED_IRON_PLATE, MItems.MODULAR_FRAME, MItems.REINFORCED_IRON_PLATE)
.rowB(MItems.REINFORCED_IRON_PLATE)
.build(consumer)
// blackhole generator
MatteryRecipe(MItems.BLACK_HOLE_GENERATOR, category = machinesCategory)
.row(MItemTags.ADVANCED_CIRCUIT, MItems.BLACK_HOLE_SCANNER, MItemTags.ADVANCED_CIRCUIT)
@ -123,6 +135,12 @@ fun addMultiblockRecipes(consumer: RecipeOutput) {
.row(MItems.MATTER_CAPACITOR_PARTS, Tags.Items.GEMS_DIAMOND, MItems.MATTER_CAPACITOR_PARTS)
.build(consumer)
MatteryRecipe(MItems.TRITANIUM_HULL, count = 4, category = machinesCategory)
.row(MItemTags.TRITANIUM_PLATES, MItemTags.IRON_PLATES, MItemTags.TRITANIUM_PLATES)
.row(MItemTags.IRON_PLATES, MItems.MODULAR_FRAME, MItemTags.IRON_PLATES)
.row(MItemTags.TRITANIUM_PLATES, MItemTags.IRON_PLATES, MItemTags.TRITANIUM_PLATES)
.build(consumer)
MatteryRecipe(MItems.MATTER_INJECTOR, category = machinesCategory)
.row(MItemTags.ADVANCED_CIRCUIT, MItems.MATTER_TRANSFORM_MATRIX, MItemTags.ADVANCED_CIRCUIT)
.row(MItemTags.DILITHIUM_GEMS, MItems.MACHINE_FRAME, MItemTags.DILITHIUM_GEMS)

View File

@ -64,10 +64,12 @@ fun addMineableTags(tagsProvider: TagsProvider) {
MBlocks.FLUID_TANK,
*MBlocks.ANDROID_CHARGER.values.toTypedArray(),
MBlocks.TRITANIUM_HULL,
MBlocks.BLACK_HOLE_GENERATOR,
MBlocks.MATTER_INJECTOR,
MBlocks.ANTIMATTER_INJECTOR,
MBlocks.HIGH_ENERGY_PARTICLE_COLLECTOR,
MBlocks.ITEM_INPUT_HATCH,
MBlocks.ITEM_OUTPUT_HATCH,
MBlocks.ENERGY_INPUT_HATCH,
@ -81,7 +83,10 @@ fun addMineableTags(tagsProvider: TagsProvider) {
MBlocks.FLYWHEEL_BEARING,
MBlocks.FLYWHEEL_HOUSING,
MBlocks.FLYWHEEL_BATTERY,
MBlocks.GENERATOR_BLOCK,
MBlocks.MODULAR_FRAME,
MBlocks.HEAVY_MODULAR_FRAME,
MBlocks.REINFORCED_REDSTONE_LAMP,
MBlocks.REINFORCED_REDSTONE_LAMP_INVERTED,

View File

@ -99,16 +99,6 @@ public class BlockShapes {
public static final BlockShape MATTER_REPLICATOR = new BlockShape(
new SimpleCuboid(0.9375d, 0d, 0d, 1d, 0.6875d, 1d),
new SimpleCuboid(0d, 0d, 0d, 0.0625d, 0.6875d, 1d),
new SimpleCuboid(0d, 0.6875d, 0.0625d, 0.5d, 1d, 0.375d),
new SimpleCuboid(0.5d, 0.6875d, 0d, 1d, 1d, 0.375d),
new SimpleCuboid(0.1875d, 0.6875d, 0.6875d, 0.9375d, 0.9375d, 0.9375d),
new SimpleCuboid(0.1875d, 0.6875d, 0.375d, 0.9375d, 0.9375d, 0.625d),
new SimpleCuboid(0.0625d, 0.6875d, 0.4375d, 0.1875d, 0.875d, 0.5625d),
new SimpleCuboid(0.0625d, 0.6875d, 0.75d, 0.1875d, 0.875d, 0.875d),
new SimpleCuboid(0d, 0.6875d, 0.9375d, 0.03125d, 1d, 1d),
new SimpleCuboid(0.96875d, 0.6875d, 0.9375d, 1d, 1d, 1d),
new SimpleCuboid(0.96875d, 0.9375d, 0.375d, 1d, 1d, 0.9375d),
new SimpleCuboid(0d, 0.9375d, 0.375d, 0.03125d, 1d, 0.9375d),
new SimpleCuboid(0.0625d, 0d, 0d, 0.9375d, 0.0625d, 1d),
new SimpleCuboid(0.5d, 0.4375d, 0d, 0.9375d, 0.6875d, 0.0625d),
new SimpleCuboid(0.0625d, 0.5625d, 0d, 0.5d, 0.6875d, 0.0625d),
@ -117,7 +107,36 @@ public class BlockShapes {
new SimpleCuboid(0.125d, 0.0625d, 0d, 0.875d, 0.125d, 0.0625d),
new SimpleCuboid(0.0625d, 0.625d, 0.0625d, 0.9375d, 0.6875d, 0.9375d),
new SimpleCuboid(0.0625d, 0.0625d, 0.9375d, 0.9375d, 0.6875d, 1d),
new SimpleCuboid(0.1875d, 0.0625d, 0.1875d, 0.8125d, 0.125d, 0.8125d)
new SimpleCuboid(0.15625d, 0.0625d, 0.15625d, 0.84375d, 0.125d, 0.84375d),
new SimpleCuboid(0.15625d, 0.5625d, 0.15625d, 0.84375d, 0.625d, 0.84375d),
new SimpleCuboid(0.5d, 0.6875d, 0d, 1d, 1d, 0.375d),
new SimpleCuboid(0d, 0.6875d, 0.0625d, 0.5d, 1d, 0.375d),
new SimpleCuboid(0d, 0.6875d, 0.375d, 1d, 1d, 1d),
new SimpleCuboid(0.5625d, 0.5d, -0.00625d, 0.9375d, 0.8125d, -0.00625d),
new SimpleCuboid(0.1875d, 0.25d, 1.00625d, 0.8125d, 0.3125d, 1.00625d),
new SimpleCuboid(0.71875d, 0.128125d, 0.21875d, 0.78125d, 0.128125d, 0.28125d),
new SimpleCuboid(0.21875d, 0.128125d, 0.21875d, 0.28125d, 0.128125d, 0.28125d),
new SimpleCuboid(0.21875d, 0.128125d, 0.71875d, 0.28125d, 0.128125d, 0.78125d),
new SimpleCuboid(0.71875d, 0.128125d, 0.71875d, 0.78125d, 0.128125d, 0.78125d),
new SimpleCuboid(0.1875d, 0.375d, 1.00625d, 0.8125d, 0.4375d, 1.00625d)
);
public static final BlockShape MATTER_ENTANGLER = new BlockShape(
new SimpleCuboid(0d, 0d, 0d, 1d, 0.3125d, 0.875d),
new SimpleCuboid(0d, 0d, 0.875d, 0.125d, 0.3125d, 1d),
new SimpleCuboid(0.875d, 0d, 0.875d, 1d, 0.3125d, 1d),
new SimpleCuboid(0.1875d, 0.375d, 0.1875d, 0.8125d, 1d, 0.8125d),
new SimpleCuboid(0d, 0.4375d, 0.25d, 0.125d, 0.9375d, 0.75d),
new SimpleCuboid(0.125d, 0.5d, 0.3125d, 0.1875d, 0.875d, 0.6875d),
new SimpleCuboid(0.8125d, 0.5d, 0.3125d, 0.875d, 0.875d, 0.6875d),
new SimpleCuboid(0.875d, 0.4375d, 0.25d, 1d, 0.9375d, 0.75d),
new SimpleCuboid(0d, 0.3125d, 0.875d, 1d, 0.4375d, 1d),
new SimpleCuboid(0d, 0.3125d, 0d, 1d, 0.4375d, 0.125d),
new SimpleCuboid(0d, 0.3125d, 0.125d, 0.125d, 0.4375d, 0.875d),
new SimpleCuboid(0.875d, 0.3125d, 0.125d, 1d, 0.4375d, 0.875d),
new SimpleCuboid(0.125d, 0.0625d, 0.84375d, 0.1875d, 0.25d, 0.96875d),
new SimpleCuboid(0.8125d, 0.0625d, 0.84375d, 0.875d, 0.25d, 0.96875d),
new SimpleCuboid(0.1875d, 0.0625d, 0.84375d, 0.8125d, 0.25d, 0.96875d)
);
public static final BlockShape MATTER_DECOMPOSER = new BlockShape(

View File

@ -1,14 +1,23 @@
package ru.dbotthepony.mc.otm.block.matter
import net.minecraft.core.BlockPos
import net.minecraft.world.level.BlockGetter
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.EntityBlock
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.entity.BlockEntityTicker
import net.minecraft.world.level.block.entity.BlockEntityType
import net.minecraft.world.level.block.state.BlockState
import net.minecraft.world.level.block.state.StateDefinition
import net.minecraft.world.phys.shapes.CollisionContext
import net.minecraft.world.phys.shapes.VoxelShape
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
import ru.dbotthepony.mc.otm.block.entity.WorkerState
import ru.dbotthepony.mc.otm.block.entity.matter.MatterEntanglerBlockEntity
import ru.dbotthepony.mc.otm.block.getShapeForEachState
import ru.dbotthepony.mc.otm.core.get
import ru.dbotthepony.mc.otm.shapes.BlockShapes
class MatterEntanglerBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock {
init {
@ -20,8 +29,25 @@ class MatterEntanglerBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES),
return MatterEntanglerBlockEntity(blockPos, blockState)
}
override fun createBlockStateDefinition(builder: StateDefinition.Builder<Block, BlockState>) {
super.createBlockStateDefinition(builder)
builder.add(WorkerState.WORKER_STATE)
}
override fun <T : BlockEntity?> getTicker(p_153212_: Level, p_153213_: BlockState, p_153214_: BlockEntityType<T>): BlockEntityTicker<T>? {
if (p_153212_.isClientSide) return null
return BlockEntityTicker { _, _, _, tile -> if (tile is MatterEntanglerBlockEntity) tile.tick() }
}
private val shapes = getShapeForEachState(rotationProperty) { BlockShapes.MATTER_ENTANGLER.rotateFromNorth(it[rotationProperty]).computeShape() }
@Suppress("override_deprecation")
override fun getShape(
state: BlockState,
blockGetter: BlockGetter,
pos: BlockPos,
context: CollisionContext
): VoxelShape {
return shapes[state]!!
}
}

View File

@ -5,6 +5,7 @@ import net.minecraft.core.SectionPos
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.EntityBlock
import net.minecraft.world.level.block.SoundType
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.entity.BlockEntityTicker
import net.minecraft.world.level.block.entity.BlockEntityType
@ -17,7 +18,7 @@ import ru.dbotthepony.mc.otm.core.math.BlockRotationFreedom
import ru.dbotthepony.mc.otm.core.math.plus
import ru.dbotthepony.mc.otm.core.math.times
class BlackHoleGeneratorBlock : RotatableMatteryBlock(Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)), EntityBlock {
class BlackHoleGeneratorBlock : RotatableMatteryBlock(Properties.of().mapColor(MapColor.METAL).sound(SoundType.NETHERITE_BLOCK).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return BlackHoleGeneratorBlockEntity(blockPos, blockState)
}

View File

@ -5,6 +5,7 @@ import net.minecraft.core.BlockPos
import net.minecraft.world.item.context.BlockPlaceContext
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.EntityBlock
import net.minecraft.world.level.block.SoundType
import net.minecraft.world.level.block.entity.BlockEntity
import net.minecraft.world.level.block.entity.BlockEntityTicker
import net.minecraft.world.level.block.entity.BlockEntityType
@ -14,7 +15,8 @@ import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
import ru.dbotthepony.mc.otm.core.TranslatableComponent
class HatchBlock(val factory: BlockEntityType.BlockEntitySupplier<out MatteryBlockEntity>, val needsTicking: Boolean = false) : RotatableMatteryBlock(Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(80.0f)), EntityBlock {
class HatchBlock(val factory: BlockEntityType.BlockEntitySupplier<out MatteryBlockEntity>, val needsTicking: Boolean = false) : RotatableMatteryBlock(Properties.of().mapColor(MapColor.METAL).sound(
SoundType.VAULT).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(80.0f)), EntityBlock {
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
return factory.create(blockPos, blockState)
}

View File

@ -32,6 +32,7 @@ object MNames {
const val MATTER_OUTPUT_HATCH = "matter_output_hatch"
const val PAINTER = "painter"
const val MATTER_ENTANGLER = "matter_entangler"
const val TRITANIUM_HULL = "tritanium_hull"
// blocks
const val ANDROID_STATION = "android_station"
@ -65,7 +66,10 @@ object MNames {
const val FLYWHEEL_BEARING = "flywheel_bearing"
const val FLYWHEEL_SHAFT = "flywheel_shaft"
const val FLYWHEEL_HOUSING = "flywheel_housing"
const val GENERATOR_BLOCK = "generator_block"
const val MODULAR_FRAME = "modular_frame"
const val HEAVY_MODULAR_FRAME = "heavy_modular_frame"
const val STORAGE_CABLE = "storage_cable" // нужен рецепт
const val STORAGE_POWER_SUPPLIER = "storage_power_supplier" // нужен рецепт
@ -200,6 +204,7 @@ object MNames {
const val CARBON_MESH = "carbon_mesh"
const val ARMOR_ASSEMBLY = "armor_assembly"
const val REINFORCED_TRITANIUM_PLATE = "reinforced_tritanium_plate"
const val REINFORCED_IRON_PLATE = "reinforced_iron_plate"
const val QUANTUM_TRANSCEIVER = "quantum_transceiver"
const val ELECTROMAGNET = "electromagnet"

View File

@ -188,10 +188,17 @@ object MBlocks {
MatteryBlock(BlockBehaviour.Properties.of().sound(SoundType.NETHERITE_BLOCK).explosionResistance(40f).mapColor(MapColor.COLOR_GRAY).destroyTime(2f).requiresCorrectToolForDrops())
.addSimpleDescription()
}
val GENERATOR_BLOCK by registry.register(MNames.GENERATOR_BLOCK) {
MatteryBlock(BlockBehaviour.Properties.of().sound(SoundType.NETHERITE_BLOCK).explosionResistance(30f).mapColor(MapColor.COLOR_GRAY).destroyTime(2.5f).requiresCorrectToolForDrops())
.addSimpleDescription()
}
val MODULAR_FRAME by registry.register(MNames.MODULAR_FRAME) { TransparentBlock(
BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).noOcclusion().sound(SoundType.METAL).requiresCorrectToolForDrops().explosionResistance(30f).destroyTime(2f)
)}
val HEAVY_MODULAR_FRAME by registry.register(MNames.HEAVY_MODULAR_FRAME) { TransparentBlock(
BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).noOcclusion().sound(SoundType.NETHERITE_BLOCK).requiresCorrectToolForDrops().explosionResistance(60f).destroyTime(2.5f)
)}
val STORAGE_BUS: Block by registry.register(MNames.STORAGE_BUS, ::StorageBusBlock)
val STORAGE_IMPORTER: Block by registry.register(MNames.STORAGE_IMPORTER, ::StorageImporterBlock)
@ -214,9 +221,14 @@ object MBlocks {
val DEV_CHEST: DevChestBlock by registry.register(MNames.DEV_CHEST) { DevChestBlock() }
val BLACK_HOLE_GENERATOR by registry.register(MNames.BLACK_HOLE_GENERATOR) { BlackHoleGeneratorBlock() }
val MATTER_INJECTOR by registry.register(MNames.MATTER_INJECTOR) { RotatableMatteryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)) }
val ANTIMATTER_INJECTOR by registry.register(MNames.ANTIMATTER_INJECTOR) { RotatableMatteryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)) }
val HIGH_ENERGY_PARTICLE_COLLECTOR by registry.register(MNames.HIGH_ENERGY_PARTICLE_COLLECTOR) { RotatableMatteryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)) }
val TRITANIUM_HULL by registry.register(MNames.TRITANIUM_HULL) {
MatteryBlock(BlockBehaviour.Properties.of().sound(SoundType.VAULT).explosionResistance(80f).mapColor(MapColor.COLOR_LIGHT_BLUE).destroyTime(2.5f).requiresCorrectToolForDrops())
.addSimpleDescription()
}
val MATTER_INJECTOR by registry.register(MNames.MATTER_INJECTOR) { RotatableMatteryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).sound(SoundType.NETHERITE_BLOCK).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)) }
val ANTIMATTER_INJECTOR by registry.register(MNames.ANTIMATTER_INJECTOR) { RotatableMatteryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).sound(SoundType.NETHERITE_BLOCK).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)) }
val HIGH_ENERGY_PARTICLE_COLLECTOR by registry.register(MNames.HIGH_ENERGY_PARTICLE_COLLECTOR) { RotatableMatteryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).sound(SoundType.NETHERITE_BLOCK).requiresCorrectToolForDrops().destroyTime(2.5f).explosionResistance(160.0f)) }
val ITEM_INPUT_HATCH by registry.register(MNames.ITEM_INPUT_HATCH) { HatchBlock(ItemHatchBlockEntity::input) }
val ITEM_OUTPUT_HATCH by registry.register(MNames.ITEM_OUTPUT_HATCH) { HatchBlock(ItemHatchBlockEntity::output) }
val ENERGY_INPUT_HATCH by registry.register(MNames.ENERGY_INPUT_HATCH) { HatchBlock(EnergyHatchBlockEntity::input, true) }

View File

@ -184,7 +184,10 @@ private fun addMainCreativeTabItems(consumer: CreativeModeTab.Output) {
accept(MItems.FLYWHEEL_BEARING)
accept(MItems.GENERATOR_BLOCK)
accept(MItems.MODULAR_FRAME)
accept(MItems.HEAVY_MODULAR_FRAME)
accept(MItems.TRITANIUM_HULL)
accept(MItems.BLACK_HOLE_GENERATOR)
accept(MItems.MATTER_INJECTOR)
accept(MItems.ANTIMATTER_INJECTOR)

View File

@ -153,14 +153,18 @@ object MItems {
val FLYWHEEL_HOUSING by registry.register(MNames.FLYWHEEL_HOUSING) { BlockItem(MBlocks.FLYWHEEL_HOUSING, DEFAULT_PROPERTIES) }
val GENERATOR_BLOCK by registry.register(MNames.GENERATOR_BLOCK) { BlockItem(MBlocks.GENERATOR_BLOCK, DEFAULT_PROPERTIES) }
val MODULAR_FRAME by registry.register(MNames.MODULAR_FRAME) { BlockItem(MBlocks.MODULAR_FRAME, DEFAULT_PROPERTIES) }
val HEAVY_MODULAR_FRAME by registry.register(MNames.HEAVY_MODULAR_FRAME) { BlockItem(MBlocks.HEAVY_MODULAR_FRAME, 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 MATTER_ENTANGLER: BlockItem by registry.register(MNames.MATTER_ENTANGLER) { BlockItem(MBlocks.MATTER_ENTANGLER, DEFAULT_PROPERTIES) }
val TRITANIUM_HULL by registry.register(MNames.TRITANIUM_HULL) { BlockItem(MBlocks.TRITANIUM_HULL, DEFAULT_PROPERTIES) }
val BLACK_HOLE_GENERATOR by registry.register(MNames.BLACK_HOLE_GENERATOR) { BlockItem(MBlocks.BLACK_HOLE_GENERATOR, DEFAULT_PROPERTIES) }
val MATTER_INJECTOR by registry.register(MNames.MATTER_INJECTOR) { BlockItem(MBlocks.MATTER_INJECTOR, DEFAULT_PROPERTIES) }
val ANTIMATTER_INJECTOR by registry.register(MNames.ANTIMATTER_INJECTOR) { BlockItem(MBlocks.ANTIMATTER_INJECTOR, DEFAULT_PROPERTIES) }
val HIGH_ENERGY_PARTICLE_COLLECTOR by registry.register(MNames.HIGH_ENERGY_PARTICLE_COLLECTOR) { BlockItem(MBlocks.HIGH_ENERGY_PARTICLE_COLLECTOR, DEFAULT_PROPERTIES) }
val ITEM_INPUT_HATCH by registry.register(MNames.ITEM_INPUT_HATCH) { BlockItem(MBlocks.ITEM_INPUT_HATCH, DEFAULT_PROPERTIES) }
val ITEM_OUTPUT_HATCH by registry.register(MNames.ITEM_OUTPUT_HATCH) { BlockItem(MBlocks.ITEM_OUTPUT_HATCH, DEFAULT_PROPERTIES) }
@ -535,6 +539,9 @@ object MItems {
val REINFORCED_TRITANIUM_PLATE: Item by registry.register(MNames.REINFORCED_TRITANIUM_PLATE) { MatteryItem(
DEFAULT_PROPERTIES
).addSimpleDescription() }
val REINFORCED_IRON_PLATE: Item by registry.register(MNames.REINFORCED_IRON_PLATE) { MatteryItem(
DEFAULT_PROPERTIES
).addSimpleDescription() }
val QUANTUM_TRANSCEIVER: Item by registry.register(MNames.QUANTUM_TRANSCEIVER) { Item(DEFAULT_PROPERTIES) }
val ELECTROMAGNET: Item by registry.register(MNames.ELECTROMAGNET) { Item(DEFAULT_PROPERTIES) }
@ -608,6 +615,7 @@ object MItems {
MItems::CARBON_MESH,
MItems::ARMOR_ASSEMBLY,
MItems::REINFORCED_TRITANIUM_PLATE,
MItems::REINFORCED_IRON_PLATE,
)
val CARGO_CRATE_MINECARTS = registry.coloredWithBase(MNames.MINECART_CARGO_CRATE, ::MinecartCargoCrateItem)

View File

@ -0,0 +1,33 @@
{
"parent": "block/block",
"textures": {
"particle": "#texture"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "north"},
"east": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "east"},
"south": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "south"},
"west": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "west"},
"up": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "up"},
"down": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "down"}
}
},
{
"from": [15.99995, 15.99995, 15.99995],
"to": [0.00005, 0.00005, 0.00005],
"rotation": {"angle": 0, "axis": "y", "origin": [16, 16, 16]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "south"},
"east": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "west"},
"south": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "north"},
"west": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "east"},
"up": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "down"},
"down": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "up"}
}
}
]
}

View File

@ -0,0 +1,453 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"render_type": "cutout",
"texture_size": [32, 32],
"textures": {
"0": "overdrive_that_matters:block/machine_base",
"1": "overdrive_that_matters:block/matter_entangler",
"2": "overdrive_that_matters:block/matter_entangler_details",
"particle": "overdrive_that_matters:block/matter_entangler",
"status": "overdrive_that_matters:block/screen_status_ok"
},
"elements": [
{
"name": "base",
"from": [0, 0, 0],
"to": [16, 5, 14],
"faces": {
"north": {"uv": [8, 9, 16, 11.5], "texture": "#1"},
"east": {"uv": [1, 1, 8, 3.5], "texture": "#1"},
"south": {"uv": [0, 8.5, 8, 11], "texture": "#1"},
"west": {"uv": [0, 1, 7, 3.5], "texture": "#1"},
"up": {"uv": [8, 0, 16, 8], "texture": "#1"},
"down": {"uv": [0, 2, 16, 16], "texture": "#0"}
}
},
{
"name": "base",
"from": [0, 0, 14],
"to": [2, 5, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 14]},
"faces": {
"east": {"uv": [0, 1, 1, 3.5], "texture": "#1"},
"south": {"uv": [0, 8.5, 1, 11], "texture": "#1"},
"west": {"uv": [7, 1, 8, 3.5], "texture": "#1"},
"down": {"uv": [0, 0, 2, 2], "texture": "#0"}
}
},
{
"name": "base",
"from": [14, 0, 14],
"to": [16, 5, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [14, 0, 14]},
"faces": {
"east": {"uv": [0, 1, 1, 3.5], "texture": "#1"},
"south": {"uv": [0, 8.5, 1, 11], "texture": "#1"},
"west": {"uv": [7, 1, 8, 3.5], "texture": "#1"},
"down": {"uv": [14, 0, 16, 2], "texture": "#0"}
}
},
{
"name": "chamber",
"from": [3, 6, 3],
"to": [13, 16, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 7]},
"faces": {
"north": {"uv": [0, 5, 5, 10], "texture": "#2"},
"east": {"uv": [5, 5, 10, 10], "texture": "#2"},
"south": {"uv": [5, 0, 10, 5], "texture": "#2"},
"west": {"uv": [5, 5, 10, 10], "texture": "#2"},
"up": {"uv": [0, 0, 5, 5], "rotation": 180, "texture": "#2"},
"down": {"uv": [10, 0, 15, 5], "texture": "#2"}
}
},
{
"name": "chamber",
"from": [13, 6, 3],
"to": [3, 16, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [17, 6, 7]},
"faces": {
"north": {"uv": [0, 5, 5, 10], "texture": "#2"},
"east": {"uv": [5, 5, 10, 10], "texture": "#2"},
"south": {"uv": [5, 0, 10, 5], "texture": "#2"},
"west": {"uv": [5, 5, 10, 10], "texture": "#2"},
"up": {"uv": [0, 0, 5, 5], "rotation": 180, "texture": "#2"},
"down": {"uv": [10, 0, 15, 5], "texture": "#2"}
}
},
{
"name": "base",
"from": [0, 7, 4],
"to": [2, 15, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 5, 4]},
"faces": {
"north": {"uv": [4, 4.5, 8, 5.5], "rotation": 90, "texture": "#1"},
"east": {"uv": [0, 3.5, 4, 7.5], "texture": "#1"},
"south": {"uv": [4, 4.5, 8, 5.5], "rotation": 90, "texture": "#1"},
"west": {"uv": [0, 3.5, 4, 7.5], "texture": "#1"},
"up": {"uv": [4, 3.5, 8, 4.5], "rotation": 90, "texture": "#1"}
}
},
{
"from": [2, 8, 5],
"to": [3, 14, 11],
"rotation": {"angle": 0, "axis": "y", "origin": [1, 5, 4]},
"faces": {
"north": {"uv": [0.5, 4, 1, 7], "texture": "#1"},
"south": {"uv": [0.5, 4, 1, 7], "texture": "#1"},
"up": {"uv": [0.5, 4, 1, 7], "texture": "#1"},
"down": {"uv": [0.5, 4, 1, 7], "texture": "#1"}
}
},
{
"from": [13, 8, 5],
"to": [14, 14, 11],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 4, 4]},
"faces": {
"north": {"uv": [0.5, 4, 1, 7], "texture": "#1"},
"south": {"uv": [0.5, 4, 1, 7], "texture": "#1"},
"up": {"uv": [0.5, 4, 1, 7], "texture": "#1"},
"down": {"uv": [0.5, 4, 1, 7], "texture": "#1"}
}
},
{
"name": "base",
"from": [14, 7, 4],
"to": [16, 15, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [14, 5, 4]},
"faces": {
"north": {"uv": [4, 4.5, 8, 5.5], "rotation": 90, "texture": "#1"},
"east": {"uv": [0, 3.5, 4, 7.5], "texture": "#1"},
"south": {"uv": [4, 4.5, 8, 5.5], "rotation": 90, "texture": "#1"},
"west": {"uv": [0, 3.5, 4, 7.5], "texture": "#1"},
"up": {"uv": [4, 3.5, 8, 4.5], "rotation": 90, "texture": "#1"}
}
},
{
"name": "base",
"from": [0, 5, 14],
"to": [16, 7, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 5, 14]},
"faces": {
"north": {"uv": [8, 7, 16, 8], "texture": "#1"},
"east": {"uv": [0, 0, 1, 1], "texture": "#1"},
"south": {"uv": [0, 7.5, 8, 8.5], "texture": "#1"},
"west": {"uv": [7, 0, 8, 1], "texture": "#1"},
"up": {"uv": [8, 7, 16, 8], "texture": "#1"},
"down": {"uv": [0, 7.5, 8, 8.5], "rotation": 180, "texture": "#1"}
}
},
{
"name": "base",
"from": [0, 5, 0],
"to": [16, 7, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 5, 0]},
"faces": {
"north": {"uv": [8, 8, 16, 9], "texture": "#1"},
"east": {"uv": [7, 0, 8, 1], "texture": "#1"},
"south": {"uv": [8, 7, 16, 8], "texture": "#1"},
"west": {"uv": [0, 0, 1, 1], "texture": "#1"},
"up": {"uv": [8, 0, 16, 1], "texture": "#1"}
}
},
{
"name": "base",
"from": [0, 5, 2],
"to": [2, 7, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 5, 2]},
"faces": {
"east": {"uv": [9, 7, 15, 8], "texture": "#1"},
"west": {"uv": [1, 0, 7, 1], "texture": "#1"},
"up": {"uv": [8, 1, 9, 7], "texture": "#1"}
}
},
{
"name": "base",
"from": [14, 5, 2],
"to": [16, 7, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [14, 5, 2]},
"faces": {
"east": {"uv": [1, 0, 7, 1], "texture": "#1"},
"west": {"uv": [9, 7, 15, 8], "texture": "#1"},
"up": {"uv": [15, 1, 16, 7], "texture": "#1"}
}
},
{
"name": "keyboard",
"from": [2, 7, -1],
"to": [10, 8, 2],
"rotation": {"angle": -45, "axis": "x", "origin": [6, 7.5, 0.5]},
"faces": {
"north": {"uv": [5, 15.5, 9, 16], "texture": "#2"},
"east": {"uv": [4.5, 14, 5, 15.5], "rotation": 90, "texture": "#2"},
"south": {"uv": [5, 13.5, 9, 14], "texture": "#2"},
"west": {"uv": [9, 14, 9.5, 15.5], "rotation": 90, "texture": "#2"},
"up": {"uv": [5, 14, 9, 15.5], "rotation": 180, "texture": "#2"},
"down": {"uv": [0, 14.5, 4, 16], "texture": "#2"}
}
},
{
"name": "screen",
"from": [11, 6, 0],
"to": [15, 10, 1],
"rotation": {"angle": 45, "axis": "x", "origin": [12.5, 7.5, 0.5]},
"faces": {
"north": {"uv": [0, 10, 2, 12], "rotation": 180, "texture": "#2"},
"east": {"uv": [2, 12, 4, 12.5], "rotation": 90, "texture": "#2"},
"south": {"uv": [2, 12.5, 4, 14.5], "texture": "#2"},
"west": {"uv": [2, 12, 4, 12.5], "rotation": 270, "texture": "#2"},
"up": {"uv": [2, 12, 4, 12.5], "texture": "#2"},
"down": {"uv": [2, 12, 4, 12.5], "rotation": 180, "texture": "#2"}
}
},
{
"name": "screen_glow",
"from": [11, 6.05, -0.05],
"to": [15, 10.05, -0.05],
"rotation": {"angle": 45, "axis": "x", "origin": [12.5, 7.5, 0.5]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#status", "neoforge_data": {"block_light": 15}}
}
},
{
"name": "shield",
"from": [0, 8, 12],
"to": [16, 14, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 12]},
"faces": {
"east": {"uv": [8, 11.5, 7, 14.5], "texture": "#1"},
"south": {"uv": [8, 11.5, 16, 14.5], "texture": "#1"},
"west": {"uv": [7, 11.5, 8, 14.5], "texture": "#1"}
}
},
{
"name": "shield",
"from": [0, 14, 12],
"to": [16, 8, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 17, 12]},
"faces": {
"east": {"uv": [8, 11.5, 7, 14.5], "texture": "#1"},
"south": {"uv": [8, 11.5, 16, 14.5], "texture": "#1"},
"west": {"uv": [7, 11.5, 8, 14.5], "texture": "#1"}
}
},
{
"name": "lower",
"from": [6.91342, 11.3806, 9.3],
"to": [8.91342, 15.3806, 10],
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 12, 9.675]},
"faces": {
"north": {"uv": [13.5, 6.5, 15.5, 7.5], "rotation": 90, "texture": "#2"},
"east": {"uv": [13.5, 7.5, 15.5, 8], "rotation": 270, "texture": "#2"},
"south": {"uv": [13.5, 6.5, 15.5, 7.5], "rotation": 270, "texture": "#2"},
"west": {"uv": [13.5, 6, 15.5, 6.5], "rotation": 270, "texture": "#2"},
"up": {"uv": [13, 6.5, 13.5, 7.5], "rotation": 270, "texture": "#2"},
"down": {"uv": [13, 6.5, 13.5, 7.5], "rotation": 270, "texture": "#2"}
}
},
{
"name": "lower",
"from": [6.24264, 8.58579, 5.9],
"to": [10.24264, 10.58579, 6.6],
"rotation": {"angle": -45, "axis": "z", "origin": [10, 9, 6.275]},
"faces": {
"north": {"uv": [13.5, 6.5, 15.5, 7.5], "texture": "#2"},
"east": {"uv": [13, 6.5, 13.5, 7.5], "texture": "#2"},
"south": {"uv": [13.5, 6.5, 15.5, 7.5], "texture": "#2"},
"west": {"uv": [13, 6.5, 13.5, 7.5], "texture": "#2"},
"up": {"uv": [13.5, 6, 15.5, 6.5], "texture": "#2"},
"down": {"uv": [13.5, 7.5, 15.5, 8], "texture": "#2"}
}
},
{
"name": "joint",
"from": [2, 11, 8.7],
"to": [4, 13, 10.7],
"rotation": {"angle": -22.5, "axis": "z", "origin": [3, 12, 9.675]},
"faces": {
"north": {"uv": [11, 5, 12, 6], "texture": "#2"},
"east": {"uv": [10, 5, 11, 6], "texture": "#2"},
"south": {"uv": [11, 5, 12, 6], "texture": "#2"},
"west": {"uv": [10, 5, 11, 6], "texture": "#2"},
"up": {"uv": [10, 5, 11, 6], "texture": "#2"},
"down": {"uv": [10, 5, 11, 6], "texture": "#2"}
}
},
{
"name": "joint",
"from": [12, 12, 5.3],
"to": [14, 14, 7.3],
"rotation": {"angle": 45, "axis": "z", "origin": [13, 13, 6.275]},
"faces": {
"north": {"uv": [11, 5, 12, 6], "texture": "#2"},
"east": {"uv": [10, 5, 11, 6], "texture": "#2"},
"south": {"uv": [11, 5, 12, 6], "texture": "#2"},
"west": {"uv": [10, 5, 11, 6], "texture": "#2"},
"up": {"uv": [10, 5, 11, 6], "texture": "#2"},
"down": {"uv": [10, 5, 11, 6], "texture": "#2"}
}
},
{
"name": "upper",
"from": [3, 12, 9.2],
"to": [8, 14, 10.2],
"rotation": {"angle": -22.5, "axis": "z", "origin": [3, 12, 9.675]},
"faces": {
"north": {"uv": [10.5, 6.5, 13, 7.5], "texture": "#2"},
"east": {"uv": [10, 6.5, 10.5, 7.5], "texture": "#2"},
"south": {"uv": [10.5, 6.5, 13, 7.5], "texture": "#2"},
"west": {"uv": [10, 6.5, 10.5, 7.5], "texture": "#2"},
"up": {"uv": [10.5, 6, 13, 6.5], "texture": "#2"},
"down": {"uv": [10.5, 7.5, 13, 8], "texture": "#2"}
}
},
{
"name": "upper",
"from": [11, 8, 5.8],
"to": [13, 13, 6.8],
"rotation": {"angle": -22.5, "axis": "z", "origin": [13, 13, 6.275]},
"faces": {
"north": {"uv": [10.5, 6.5, 13, 7.5], "rotation": 90, "texture": "#2"},
"east": {"uv": [10.5, 7.5, 13, 8], "rotation": 270, "texture": "#2"},
"south": {"uv": [10.5, 6.5, 13, 7.5], "rotation": 270, "texture": "#2"},
"west": {"uv": [10.5, 6, 13, 6.5], "rotation": 270, "texture": "#2"},
"up": {"uv": [10, 6.5, 10.5, 7.5], "rotation": 270, "texture": "#2"},
"down": {"uv": [10, 6.5, 10.5, 7.5], "rotation": 270, "texture": "#2"}
}
},
{
"name": "upper",
"from": [6.77817, 6.87868, 5.8],
"to": [8.77817, 11.87868, 6.8],
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 12, 6.275]},
"faces": {
"north": {"uv": [10.5, 6.5, 13, 7.5], "rotation": 90, "texture": "#2"},
"east": {"uv": [10.5, 7.5, 13, 8], "rotation": 270, "texture": "#2"},
"south": {"uv": [10.5, 6.5, 13, 7.5], "rotation": 270, "texture": "#2"},
"west": {"uv": [10.5, 6, 13, 6.5], "rotation": 270, "texture": "#2"},
"up": {"uv": [10, 6.5, 10.5, 7.5], "rotation": 270, "texture": "#2"},
"down": {"uv": [10, 6.5, 10.5, 7.5], "rotation": 270, "texture": "#2"}
}
},
{
"name": "upper",
"from": [6.68925, 14.22628, 9.2],
"to": [11.68925, 16.22628, 10.2],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 15, 9.675]},
"faces": {
"north": {"uv": [10.5, 6.5, 13, 7.5], "texture": "#2"},
"east": {"uv": [10, 6.5, 10.5, 7.5], "texture": "#2"},
"south": {"uv": [10.5, 6.5, 13, 7.5], "texture": "#2"},
"west": {"uv": [10, 6.5, 10.5, 7.5], "texture": "#2"},
"up": {"uv": [10.5, 6, 13, 6.5], "texture": "#2"},
"down": {"uv": [10.5, 7.5, 13, 8], "texture": "#2"}
}
},
{
"name": "pointer",
"from": [9.22628, 10.55339, 9.3],
"to": [10.22628, 11.55339, 10.1],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 12, 9.675]},
"faces": {
"north": {"uv": [10.5, 8.5, 11, 9], "texture": "#2"},
"east": {"uv": [10, 8.5, 10.4, 9], "texture": "#2"},
"south": {"uv": [10.5, 8.5, 11, 9], "texture": "#2"},
"west": {"uv": [10, 8.5, 10.4, 9], "texture": "#2"},
"up": {"uv": [10.5, 8, 11, 8.4], "texture": "#2"}
}
},
{
"name": "pointer_glow",
"from": [9.22628, 9.55339, 9.3],
"to": [10.22628, 10.55339, 10.1],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 12, 9.675]},
"faces": {
"north": {"uv": [10.5, 9, 11, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"east": {"uv": [10, 9, 10.4, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"south": {"uv": [10.5, 9, 11, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"west": {"uv": [10, 9, 10.4, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"down": {"uv": [10.5, 9.5, 11, 9.9], "texture": "#2", "neoforge_data": {"block_light": 15}}
}
},
{
"name": "pointer",
"from": [7.77817, 5.87868, 5.9],
"to": [8.77817, 6.87868, 6.7],
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 12, 6.275]},
"faces": {
"north": {"uv": [10.5, 8.5, 11, 9], "texture": "#2"},
"east": {"uv": [10, 8.5, 10.4, 9], "texture": "#2"},
"south": {"uv": [10.5, 8.5, 11, 9], "texture": "#2"},
"west": {"uv": [10, 8.5, 10.4, 9], "texture": "#2"},
"up": {"uv": [10.5, 8, 11, 8.4], "texture": "#2"}
}
},
{
"name": "pointer_glow",
"from": [7.77817, 4.87868, 5.9],
"to": [8.77817, 5.87868, 6.7],
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 12, 6.275]},
"faces": {
"north": {"uv": [10.5, 9, 11, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"east": {"uv": [10, 9, 10.4, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"south": {"uv": [10.5, 9, 11, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"west": {"uv": [10, 9, 10.4, 9.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"down": {"uv": [10.5, 9.5, 11, 9.9], "texture": "#2", "neoforge_data": {"block_light": 15}}
}
},
{
"name": "canister",
"from": [2, 1, 13.5],
"to": [3, 4, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, 13.5]},
"faces": {
"south": {"uv": [4.5, 12, 5, 13.5], "texture": "#2"},
"up": {"uv": [4.5, 11, 5, 12], "texture": "#2"},
"down": {"uv": [4.5, 12, 5, 11], "texture": "#2"}
}
},
{
"name": "canister",
"from": [13, 1, 13.5],
"to": [14, 4, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 2, 13.5]},
"faces": {
"south": {"uv": [10, 12, 10.5, 13.5], "texture": "#2"},
"up": {"uv": [10, 11, 10.5, 12], "texture": "#2"},
"down": {"uv": [10, 12, 10.5, 11], "texture": "#2"}
}
},
{
"name": "canister_glow",
"from": [3, 1, 13.5],
"to": [13, 4, 15.5],
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, 13.5]},
"faces": {
"south": {"uv": [5, 12, 10, 13.5], "texture": "#2", "neoforge_data": {"block_light": 15}},
"up": {"uv": [5, 11, 10, 12], "texture": "#2", "neoforge_data": {"block_light": 15}},
"down": {"uv": [5, 13.5, 10, 12.5], "texture": "#2", "neoforge_data": {"block_light": 15}}
}
},
{
"name": "wires",
"from": [15, 9, 11],
"to": [15, 17, 17],
"rotation": {"angle": 22.5, "axis": "y", "origin": [15, 13, 12]},
"faces": {
"east": {"uv": [10.5, 12, 13.5, 16], "texture": "#2"},
"west": {"uv": [13.5, 12, 10.5, 16], "texture": "#2"}
}
},
{
"name": "wires",
"from": [15, 10, 11],
"to": [15, 18, 17],
"rotation": {"angle": 0, "axis": "y", "origin": [15, 14, 12]},
"faces": {
"east": {"uv": [11, 8, 14, 12], "texture": "#2"},
"west": {"uv": [14, 8, 11, 12], "texture": "#2"}
}
}
]
}

View File

@ -0,0 +1,7 @@
{
"parent": "overdrive_that_matters:block/matter_entangler,
"texture_size": [32, 32],
"textures": {
"status": "overdrive_that_matters:block/screen_status_error"
}
}

View File

@ -0,0 +1,7 @@
{
"parent": "overdrive_that_matters:block/matter_entangler",
"texture_size": [32, 32],
"textures": {
"status": "overdrive_that_matters:block/screen_status_offline"
}
}

View File

@ -0,0 +1,7 @@
{
"parent": "overdrive_that_matters:block/matter_entangler",
"texture_size": [32, 32],
"textures": {
"status": "overdrive_that_matters:block/screen_status_ok"
}
}

View File

@ -292,9 +292,9 @@
},
{
"name": "monitor",
"from": [9, 8, 0],
"to": [15, 13, 0],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 11, -2]},
"from": [9, 8, -0.1],
"to": [15, 13, -0.1],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 11, -2.05]},
"faces": {
"north": {"uv": [0, 3.2, 9.56, 11.14], "texture": "#status", "neoforge_data": {"block_light": 15}}
}

View File

@ -1,7 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"render_type": "cutout",
"textures": {
"all": "overdrive_that_matters:block/decorative/metal_mesh"
}
}

View File

@ -0,0 +1,98 @@
{
"format_version": "1.8.0",
"animations": {
"idle": {
"loop": true,
"animation_length": 1.44,
"bones": {
"Body": {
"rotation": {
"0.0": [0, -2.5, 0],
"0.72": [0, 3.33, 0],
"1.44": [0, -2.5, 0]
}
},
"Ljaw": {
"rotation": {
"0.0": [2.5, 0, 0],
"0.72": [5, 0, 0],
"1.44": [2.5, 0, 0]
}
},
"UJaw": {
"rotation": {
"0.0": [-2.5, 0, 0],
"0.72": [-5, 0, 0],
"1.44": [-2.5, 0, 0]
}
},
"tail": {
"rotation": {
"0.0": [0, 5, 0],
"0.72": [0, -7.5, 0],
"1.44": [0, 5, 0]
}
}
}
},
"move": {
"loop": true,
"animation_length": 1.44,
"bones": {
"root": {
"position": {
"0.0": [1, 0, 2],
"0.12": [0, 5, -1],
"0.24": [-1, 0, -1],
"0.72": [-2, 0, 2],
"0.84": [0, 5, -1],
"0.96": [1, 0, -1],
"1.44": [1, 0, 2]
}
},
"Body": {
"rotation": {
"0.0": [0, 0, 0],
"0.12": [7.52832, 4.95712, 0.65426],
"0.2": [12.50944, 1.65237, 0.21809],
"0.24": [0, 0, 0],
"0.72": [0, 0, 0],
"0.84": [7.52832, -4.95712, -0.65426],
"0.92": [15.01888, -3.30474, -0.43618],
"0.96": [0, 0, 0]
}
},
"Ljaw": {
"rotation": {
"0.0": [0, 0, 0],
"0.12": [25, 0, 0],
"0.32": [0, 0, 0],
"0.72": [0, 0, 0],
"0.84": [25, 0, 0],
"1.04": [0, 0, 0]
}
},
"UJaw": {
"rotation": {
"0.0": [0, 0, 0],
"0.12": [-25, 0, 0],
"0.32": [0, 0, 0],
"0.72": [0, 0, 0],
"0.84": [-30, 0, 0],
"1.04": [0, 0, 0]
}
},
"tail": {
"rotation": {
"0.0": [0, 0, 0],
"0.12": [-10.03742, -4.92385, 0.87038],
"0.24": [0, 0, 0],
"0.72": [0, 0, 0],
"0.84": [-12.54624, 4.88119, -1.08482],
"0.96": [0, 0, 0]
}
}
}
}
}
}

View File

@ -0,0 +1,49 @@
// Made with Blockbench 4.12.3
// Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports
public class bread_monster<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("modid", "bread_monster"), "main");
private final ModelPart root;
private final ModelPart Body;
private final ModelPart Ljaw;
private final ModelPart UJaw;
private final ModelPart tail;
public bread_monster(ModelPart root) {
this.root = root.getChild("root");
this.Body = this.root.getChild("Body");
this.Ljaw = this.Body.getChild("Ljaw");
this.UJaw = this.Body.getChild("UJaw");
this.tail = this.Body.getChild("tail");
}
public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition root = partdefinition.addOrReplaceChild("root", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F));
PartDefinition Body = root.addOrReplaceChild("Body", CubeListBuilder.create().texOffs(0, 0).addBox(-4.0F, -3.0F, -5.0F, 8.0F, 6.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -3.0F, 0.0F));
PartDefinition Ljaw = Body.addOrReplaceChild("Ljaw", CubeListBuilder.create().texOffs(26, 24).addBox(-4.0F, -2.0F, -4.0F, 8.0F, 3.0F, 4.0F, new CubeDeformation(0.1F)), PartPose.offset(0.0F, 2.0F, -3.0F));
PartDefinition UJaw = Body.addOrReplaceChild("UJaw", CubeListBuilder.create().texOffs(0, 24).addBox(-4.0F, -2.0F, -4.0F, 8.0F, 3.0F, 5.0F, new CubeDeformation(0.1F)), PartPose.offset(0.0F, -1.0F, -3.0F));
PartDefinition tail = Body.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(0, 12).addBox(-4.0F, -3.0F, -0.1F, 8.0F, 6.0F, 6.0F, new CubeDeformation(-0.1F)), PartPose.offset(0.0F, 0.0F, 1.0F));
return LayerDefinition.create(meshdefinition, 64, 32);
}
@Override
public void setupAnim(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
}
@Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
root.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

After

Width:  |  Height:  |  Size: 980 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 507 B

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