From dc1cf56ed95a8d1b4f027da7732aa47a628ed701 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Mon, 16 Sep 2024 16:41:01 +0300 Subject: [PATCH 1/4] =?UTF-8?q?YuRaNnNzZZ=20=E2=80=94=20=D0=A1=D0=B5=D0=B3?= =?UTF-8?q?=D0=BE=D0=B4=D0=BD=D1=8F,=20=D0=B2=2015:54=20=D0=B0=20=D0=B3?= =?UTF-8?q?=D0=B4=D0=B5=20=D1=83=20=D1=8D=D1=82=D0=BE=D0=B9=20=D0=B1=D1=80?= =?UTF-8?q?=D0=BE=D0=BD=D0=B8=20=D0=BF=D1=80=D0=BE=D1=87=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=3F=3F=3F=3F=3F=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbotthepony/mc/otm/item/armor/TritaniumArmorItem.kt | 2 +- src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/armor/TritaniumArmorItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/armor/TritaniumArmorItem.kt index 0ee46f6f8..cecba4c59 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/armor/TritaniumArmorItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/armor/TritaniumArmorItem.kt @@ -33,7 +33,7 @@ private object TritaniumArmorRenderProperties : IClientItemExtensions { } } -class TritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.TRITANIUM, slot, Properties().stacksTo(1).rarity(Rarity.RARE)), +class TritaniumArmorItem(slot: Type) : ArmorItem(MArmorMaterials.TRITANIUM, slot, Properties().stacksTo(1).rarity(Rarity.RARE).durability(slot.getDurability(48))), ClientExtensionsListener { override fun registerClientExtensions(event: RegisterClientExtensionsEvent) { event.registerItem(TritaniumArmorRenderProperties, this) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt index a99e66d3a..26b0dd0fe 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt @@ -376,10 +376,10 @@ object MItems { val TRITANIUM_PANTS: TritaniumArmorItem by registry.register(MNames.TRITANIUM_PANTS) { TritaniumArmorItem(ArmorItem.Type.LEGGINGS) } val TRITANIUM_BOOTS: TritaniumArmorItem by registry.register(MNames.TRITANIUM_BOOTS) { TritaniumArmorItem(ArmorItem.Type.BOOTS) } - val SIMPLE_TRITANIUM_HELMET: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_HELMET) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.HELMET, Properties().stacksTo(1)) } - val SIMPLE_TRITANIUM_CHESTPLATE: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_CHESTPLATE) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.CHESTPLATE, Properties().stacksTo(1)) } - val SIMPLE_TRITANIUM_PANTS: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_PANTS) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.LEGGINGS, Properties().stacksTo(1)) } - val SIMPLE_TRITANIUM_BOOTS: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_BOOTS) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.BOOTS, Properties().stacksTo(1)) } + val SIMPLE_TRITANIUM_HELMET: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_HELMET) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.HELMET, Properties().stacksTo(1).durability(ArmorItem.Type.HELMET.getDurability(24))) } + val SIMPLE_TRITANIUM_CHESTPLATE: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_CHESTPLATE) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.CHESTPLATE, Properties().stacksTo(1).durability(ArmorItem.Type.CHESTPLATE.getDurability(24))) } + val SIMPLE_TRITANIUM_PANTS: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_PANTS) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.LEGGINGS, Properties().stacksTo(1).durability(ArmorItem.Type.LEGGINGS.getDurability(24))) } + val SIMPLE_TRITANIUM_BOOTS: ArmorItem by registry.register(MNames.SIMPLE_TRITANIUM_BOOTS) { ArmorItem(MArmorMaterials.SIMPLE_TRITANIUM, ArmorItem.Type.BOOTS, Properties().stacksTo(1).durability(ArmorItem.Type.BOOTS.getDurability(24))) } val TRITANIUM_ARMOR = SupplierList( ::TRITANIUM_HELMET, From a38e1c1548c3395777deaa33f8edaa9470961195 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Wed, 18 Sep 2024 18:00:41 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D1=81=D1=82=D1=83=D0=BB=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B7=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B8=D0=B5=D0=BD=D1=82=D1=83=20=D0=BD=D0=B5=20=D0=BD=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=81=D1=8F=20=D0=9D=D0=95=20=D0=A2?= =?UTF-8?q?=D0=98=D0=9A=D0=90=D0=99=20=D0=9D=D0=95=20=D0=A1=D0=92=D0=9E?= =?UTF-8?q?=D0=98=D0=9C=20=D0=A1=D0=A2=D0=A3=D0=9B=D0=9E=D0=9C,=20=D0=AD?= =?UTF-8?q?=D0=A2=D0=9E=20=D0=A1=D0=95=D0=A0=D0=92=D0=95=D0=A0=D0=9D=D0=AB?= =?UTF-8?q?=D0=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbotthepony/mc/otm/block/decorative/StarChairBlock.kt | 5 ++--- .../kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt | 8 ++++++-- .../kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt | 6 +++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt index 1620e2966..81b1b94b8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/decorative/StarChairBlock.kt @@ -28,13 +28,12 @@ class StarChairBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_PROPE override fun useWithoutItem(blockState: BlockState, level: Level, blockPos: BlockPos, ply: Player, blockHitResult: BlockHitResult): InteractionResult { if (ply.isCrouching) return super.useWithoutItem(blockState, level, blockPos, ply, blockHitResult) + if (level.isClientSide) return InteractionResult.SUCCESS val entities = level.getEntitiesOfClass(RideableDummy::class.java, AABB(blockPos, blockPos + BlockPos(1, 1, 1))) if (entities.isNotEmpty()) return InteractionResult.FAIL - val entity = RideableDummy(level) - entity.blockPos = blockPos - entity.blockState = blockState + val entity = RideableDummy(level, blockPos, blockState) entity.yRot = blockState[rotationFreedom()].front.toYRot() entity.setPos(blockPos.x + 0.5, blockPos.y.toDouble(), blockPos.z + 0.5) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt index 8f12bba1a..0b8dc9950 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/RideableDummy.kt @@ -15,6 +15,11 @@ class RideableDummy(level: Level) : Entity(MEntityTypes.RIDEABLE_DUMMY, level) { var blockPos: BlockPos = BlockPos.ZERO var blockState: BlockState = Blocks.AIR.defaultBlockState() + constructor(level: Level, blockPos: BlockPos, blockState: BlockState) : this(level) { + this.blockPos = blockPos + this.blockState = blockState + } + init { isNoGravity = true noPhysics = true @@ -23,10 +28,9 @@ class RideableDummy(level: Level) : Entity(MEntityTypes.RIDEABLE_DUMMY, level) { override fun tick() { super.tick() + if (level().isClientSide) return if (level().getBlockState(blockPos) != blockState || passengers.isEmpty()) { discard() - - return } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt index 18a2a378f..beb4f5153 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MEntityTypes.kt @@ -29,7 +29,11 @@ object MEntityTypes { } val RIDEABLE_DUMMY: EntityType by registry.register(MNames.RIDEABLE_DUMMY) { - EntityType.Builder.of({ _, level -> RideableDummy(level)}, MobCategory.MISC).sized(0.5f, 0.5f).build(MNames.RIDEABLE_DUMMY) + EntityType.Builder.of({ _, level -> RideableDummy(level) }, MobCategory.MISC) + .sized(0.5f, 0.5f) + .passengerAttachments(0.5f) + .clientTrackingRange(8) + .build(MNames.RIDEABLE_DUMMY) } fun register(bus: IEventBus) { From f8e3fb156c57c38b5663e4407df476468ea75c4b Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Fri, 20 Sep 2024 01:33:25 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D1=8F=20=D0=B2=D0=B0=D0=BC=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D1=89=D0=B0=D1=8E=20=D1=80=D0=B5=D0=BF=D0=BB?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/dbotthepony/mc/otm/datagen/tags/Tags.kt | 17 +++++++++++++++++ .../matter/MatterReplicatorBlockEntity.kt | 8 +++++--- .../entity/matter/MatterScannerBlockEntity.kt | 3 ++- .../ru/dbotthepony/mc/otm/registry/MItemTags.kt | 8 +++++++- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt index 2d46e61b2..d9e98c8db 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt @@ -180,6 +180,23 @@ fun addTags(tagsProvider: TagsProvider) { .add(MRegistry.TRITANIUM_STRIPED_WALL.flatItems) .add(MItems.TRITANIUM_STRIPED_WALL.values) + tagsProvider.items.Appender(MItemTags.NO_REPLICATION) + .add(Items.WRITTEN_BOOK) + .add(Tags.Items.ORES) + .add(Tags.Items.RAW_MATERIALS) + .add(MItems.PILL_ANDROID) + .add(MItems.PILL_HUMANE) + .add(MItems.PILL_OBLIVION) + .add(MItems.QUANTUM_BATTERY) + .add(MItems.QUANTUM_CAPACITOR) + .add(MItems.QUANTUM_BATTERY_CREATIVE) + .add(MItems.ZPM_BATTERY) + .add(MItems.PROCEDURAL_BATTERY) + .add(MItems.EXOPACK_PROBE) + .add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) + .add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_WITHER) + .add(MItems.ExopackUpgrades.INVENTORY_UPGRADE_ENDER_DRAGON) + tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_DOOR.values, Tiers.IRON) tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_TRAPDOOR.values, Tiers.IRON) tagsProvider.requiresPickaxe(MBlocks.PAINTER, Tiers.STONE) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt index 6e50499f5..69fd5f3e0 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterReplicatorBlockEntity.kt @@ -35,6 +35,7 @@ import ru.dbotthepony.mc.otm.graph.matter.MatterNode import ru.dbotthepony.mc.otm.matter.MatterManager import ru.dbotthepony.mc.otm.menu.matter.MatterReplicatorMenu import ru.dbotthepony.mc.otm.registry.MBlockEntities +import ru.dbotthepony.mc.otm.registry.MItemTags import ru.dbotthepony.mc.otm.registry.MItems import java.util.* @@ -168,10 +169,11 @@ class MatterReplicatorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : } val allocation = matterNode.graph.allocateTask(simulate = false) ?: return JobContainer.observe() - val stack = allocation.task.stack(1) - val matter = MatterManager.get(stack) - // ???????? + val stack = allocation.task.stack(1) + if (stack.`is`(MItemTags.NO_REPLICATION)) return JobContainer.failure() + + val matter = MatterManager.get(stack) if (!matter.hasMatterValue) return JobContainer.failure() val ticks = matter.complexity diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt index e87161070..7e55749fa 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterScannerBlockEntity.kt @@ -27,6 +27,7 @@ import ru.dbotthepony.mc.otm.menu.matter.MatterScannerMenu import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.graph.matter.MatterNode import ru.dbotthepony.mc.otm.matter.MatterManager +import ru.dbotthepony.mc.otm.registry.MItemTags import java.util.* import kotlin.math.pow @@ -114,7 +115,7 @@ class MatterScannerBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : } val stack = container.getItem(0) - if (stack.isEmpty || !MatterManager.canDecompose(stack)) return JobContainer.noItem() + if (stack.isEmpty || !MatterManager.canDecompose(stack) || stack.`is`(MItemTags.NO_DECOMPOSING) || stack.`is`(MItemTags.NO_REPLICATION)) return JobContainer.noItem() var findState: PatternState? = null diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemTags.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemTags.kt index d3f941454..08afc394b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemTags.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItemTags.kt @@ -80,6 +80,12 @@ object MItemTags { val HARDENED_GLASS_WHITE: TagKey = ItemTags.create(ResourceLocation("c", "hardened_glass/white")) val HARDENED_GLASS_YELLOW: TagKey = ItemTags.create(ResourceLocation("c", "hardened_glass/yellow")) - val MACHINES: TagKey = ItemTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "machines")) + val MACHINES: TagKey = ItemTags.create(modLoc("machines")) + + val NO_DECOMPOSING: TagKey = ItemTags.create(modLoc("matter/no_decomposing")) + val NO_REPLICATION: TagKey = ItemTags.create(modLoc("matter/no_replication")) + val NO_REPAIR: TagKey = ItemTags.create(modLoc("matter/no_repair")) + + fun modLoc(path: String) : ResourceLocation = ResourceLocation(OverdriveThatMatters.MOD_ID, path) } From 8ec175ad90797f5db8eeb0e9deb0b4749d9ceab6 Mon Sep 17 00:00:00 2001 From: YuRaNnNzZZ Date: Fri, 20 Sep 2024 01:34:08 +0300 Subject: [PATCH 4/4] =?UTF-8?q?AMD=20User=20=E2=80=94=20=D0=92=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=B0,=20=D0=B2=203:15=20Shovel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt index d9e98c8db..5a3d44dcb 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt @@ -133,7 +133,7 @@ fun addTags(tagsProvider: TagsProvider) { tagsProvider.items.Appender(ItemTags.AXES).add(MItems.TRITANIUM_AXE) tagsProvider.items.Appender(ItemTags.PICKAXES).add(MItems.TRITANIUM_PICKAXE) tagsProvider.items.Appender(ItemTags.SHOVELS).add(MItems.TRITANIUM_SHOVEL) - tagsProvider.items.Appender(ItemTags.SHOVELS).add(MItems.TRITANIUM_HOE) + tagsProvider.items.Appender(ItemTags.HOES).add(MItems.TRITANIUM_HOE) tagsProvider.items.Appender(Tags.Items.TOOLS_SHEAR).add(MItems.TRITANIUM_SHEARS) tagsProvider.items.Appender(Tags.Items.TOOLS_SHIELD).add(MItems.TRITANIUM_SHIELD)