CreateMod/src/main/java/com/simibubi/create/content/curiosities/girder/GirderBlock.java

360 lines
15 KiB
Java
Raw Normal View History

package com.simibubi.create.content.curiosities.girder;
import static net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock.FACE;
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.WATERLOGGED;
import java.util.Random;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.AllShapes;
Squashed commit of the following: commit 053dd09df6c426ab5e570f42a1edb5df3d0fbd01 Merge: 6d1e1c71d ecc645eba Author: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue May 9 18:22:42 2023 +0200 Merge branch '1.18/api' of https://github.com/Layers-of-Railways/Create into pr/4692 commit ecc645eba7bfd5f86b9bfb16ee1236a5d6432d3d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Tue May 9 11:24:11 2023 +0100 Implemented support for creating and removing individual blockstate models commit 6d1e1c71de7ce20f6fd9fc8ed4ed9bdd1072829a Author: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue May 9 12:16:54 2023 +0200 Less error logging when migrating old worlds commit 205e47352ec46f8e300167db69023c7938a52b58 Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 21:02:19 2023 -0700 Fix up ItemOutline commit 6cf204f6afd12671060d198d5a09efe9cd04c7b5 Merge: fe049bc77 2e3c906ce Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:28:56 2023 -0700 Merge remote-tracking branch 'upstream/mc1.18/dev' into 1.18/api # Conflicts: # src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageCouplingRenderer.java commit fe049bc771cc3a4dd91f5c91f098aa7448af6c8d Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:26:16 2023 -0700 Revert "Revert "Rewrite outline buffering"" This reverts commit 726bfaf0 commit 435b4c1c16153e30740d6878cf1f676b7a442c19 Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:20:23 2023 -0700 Clean up last bits of upside down rendering commit 662da6bab1f6ad96a4fa05c9ff8538080ac69ac2 Merge: 122fe77af d83285e8a Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:16:32 2023 -0700 Merge remote-tracking branch 'origin/1.18/api' into 1.18/api # Conflicts: # src/main/java/com/simibubi/create/content/logistics/trains/StandardBogeyRenderer.java commit 122fe77afa2df18dde7afe0bc6aee536f33b18bd Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:15:46 2023 -0700 Fix up upside down rendering commit d83285e8a4da5fcb6900c032e6bd8cd59f81bde8 Merge: 00e953a58 cdb0ad210 Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Sun May 7 07:02:18 2023 -0700 Merge pull request #3 from Layers-of-Railways/1.18/bogey-api Cleanup cycle groups and unused imports commit cdb0ad210b7c984b9fcfbecae8a2a0ebf052eb9d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 10:15:47 2023 +0100 Fixed merge artifact commit 457d5f33ed05075dbd0ffc38c17d3135b494dc26 Merge: 4e4e227a3 00e953a58 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 10:14:07 2023 +0100 Merge remote-tracking branch 'origin/1.18/api' into 1.18/api commit 00e953a585bd8e146b6304a19cebd174404ab1c3 Merge: 1e4d5504e a7a25896c Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Sun May 7 10:13:49 2023 +0100 Merge pull request #2 from Rabbitminers/mc1.18/dev Added Return Values and Small Cleanup commit a7a25896c1a5a0a353400ed329a46a461347553e Merge: 7622128be 1e4d5504e Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Sun May 7 10:13:40 2023 +0100 Merge branch '1.18/api' into mc1.18/dev commit 4e4e227a351cb7f70aa4476bebfad1c0e963b561 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 10:10:30 2023 +0100 Cleanup to cycle groups commit aa94fc97d154dcdcaaaa5b4d5e8311af9470d38a Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 09:50:50 2023 +0100 Removed unused import of Railways commit 7622128bec17931ea4029792d62c645d0f354e5f Merge: 81eeadb85 d52065808 Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Sun May 7 09:11:59 2023 +0100 Merge branch 'Layers-of-Railways:mc1.18/dev' into mc1.18/dev commit 1e4d5504ee4fe32d655e08acbeb6c492b5e8bb0b Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat May 6 18:03:39 2023 -0700 Don't revert non-buggy changes commit b306cf212471f2842311af071dc6b595cbf79216 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat May 6 18:00:59 2023 -0700 Take materials into consideration when trains pathfind commit fca02ae4bfade6f839533c11785cc3e56332f463 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat May 6 10:25:51 2023 -0700 Add materials to track graph commit 726bfaf0b5226a657b45ce4bd1aa365d891a27a4 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 21:16:49 2023 -0700 Revert "Rewrite outline buffering" This reverts commit d4106d545b0381c3bec304e727a136ea105a8468. commit 171897bed25ed8f7ad3999c8527bb649bb932c81 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 20:55:25 2023 -0700 Fix up style cycling commit cbd0cf20da482851f98f5312cbc40770a6c14f16 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 07:32:06 2023 -0700 clean up nether portal carriage handling commit d556f0887632664126a2e10cbb1c8fc6d37e2582 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 07:06:02 2023 -0700 upside down bogeys work in nether portals fixed coupling anchor offsets commit da26c0ccbf26b892013f6e365556eea6952009f2 Author: techno-sam <linux.techno.sam@gmail.com> Date: Thu May 4 09:32:53 2023 -0700 working on upside down bogeys in nether portals commit 81eeadb8532599d482f2259e58cedeaa602e8628 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon May 1 16:15:28 2023 +0100 Small cleanup commit c7e9df973cf3d0dab15992d06e6a51985d305ba8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon May 1 16:13:51 2023 +0100 Fixed issue raised in #1 commit 2f285b6eb7341879899895b1c5bbadd0137abb83 Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 1 08:13:27 2023 -0700 add data gen commit 206de013111a879de133f62846e4f10d7228ea0a Merge: e91753a33 6564f4fa7 Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Mon May 1 06:49:21 2023 -0700 Merge pull request #1 from Rabbitminers/mc1.18/dev Bogey API commit 6564f4fa730f71920552fd2ad6f2c8255df69995 Merge: e5d759582 e91753a33 Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Mon May 1 10:40:32 2023 +0100 Merge branch '1.18/api' into mc1.18/dev commit e5d759582279b3a761c7011174ec77119f4f4f93 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon May 1 10:09:03 2023 +0100 Connected Custom Bogey Particle Types To CarriageParticles commit e91753a33cde6dbe0caaface45a7f377d75acbed Author: techno-sam <linux.techno.sam@gmail.com> Date: Sun Apr 30 19:51:26 2023 -0700 Fix up some problems commit 9815f1490f9d540986f85f49f297e2f014c312c4 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:12:43 2023 +0100 Implemented default data when shifting styles commit da30e78815afd7906ea82a9fba293f202c036fa8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:12:14 2023 +0100 Added Particles To Bogey Style (And Respective Builder) commit 08c000b8ba302a1c14f7479e70445e2c6d360bc3 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:01:19 2023 +0100 Added Backup Rendering If A Size Is Not Present commit 2b76e8d7b3b8d88355868ea31d4b6e3df11a7169 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:00:40 2023 +0100 Added Common Renderer To Remove Function commit 411ec36f573a570284b2bda566d8a006550983e8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:59:50 2023 +0100 Added Display Name To Standard Bogey Style commit 112306d5d49db10176d091f1f2ece893afb274dd Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:59:30 2023 +0100 Displayed new style name when changing betweeen them commit 5634670b2750a2df5dfee6de3f93bc895391300d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:06:00 2023 +0100 General Cleanup commit 0f7a8b7b24ef25c4266fc88f82995b609087904e Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:05:50 2023 +0100 Implemented Changes To Remaining Classes commit 8aedc00f963413ac0a02335bc9f914d45a82b4de Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:02:06 2023 +0100 Removed Bogey Style Handling From Registrate commit edf8079abf9750dc9f3ccf1aedf58fef80428385 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:01:40 2023 +0100 Removed Unused Registry Handling commit 6a185c4e727ecf55183cb885b109c0f5c5319854 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:01:16 2023 +0100 Refactored Bogey Sizes commit e10d07ddc3b70cfa6f4a210aa9a9e6bcc6200b7f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:01:00 2023 +0100 Overhauled Bogey Style commit 74d98a2ad538e2b9d35fdfd2270a14597d29f957 Merge: e629d02f5 4ebcf8201 Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Sun Apr 23 07:16:33 2023 -0700 Merge branch 'Creators-of-Create:mc1.18/dev' into 1.18/api commit e629d02f505c7de2d786a126fe49168351f17124 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sun Apr 9 07:18:22 2023 -0700 Track API Clean up code a bit commit d9ce6ce995128e64d079145b96273235c4fec783 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sun Apr 9 07:14:46 2023 -0700 Track API? Fix placement commit 7fbf08ba54ce3397045a8acdd6b7be813009ee7b Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat Apr 8 11:11:24 2023 -0700 Track API? Fix up some placement issues commit 35644f143426bc2cae1a63c4f09d7145a4e18983 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat Apr 8 08:11:13 2023 -0700 Track API maybe? Datagen Seems to be working commit f7c56b867a6afe52fa742f4d4c310db9788cc2ef Author: techno-sam <linux.techno.sam@gmail.com> Date: Thu Apr 6 21:24:31 2023 -0700 Track API maybe? Fix build - broken generic Not yet tested, but it is progress commit 2a59fd7e8ab91a6004abe4b92152a2a936a22c1b Author: techno-sam <linux.techno.sam@gmail.com> Date: Thu Apr 6 21:13:54 2023 -0700 Track API maybe? Not yet tested, but it is progress commit 5ba30d6a85dd2cfa49434cb55a25b258b02a9665 Merge: e4e5ac1c4 c2977bbff Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Thu Apr 6 17:10:39 2023 -0700 Merge branch 'Creators-of-Create:mc1.18/dev' into 1.18/api commit d52065808c5d250e6aec35878a5349be563c1d24 Merge: e4e5ac1c4 c2977bbff Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Thu Apr 6 17:10:26 2023 -0700 Merge branch 'Creators-of-Create:mc1.18/dev' into mc1.18/dev commit 53240bd42f08d839b233a3b75cb59aabb4648fb9 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 21:42:29 2023 +0100 Corrected Bogey InteractionResult To Pass commit 69326e361ab7d982a577f1e864c772967ad9c134 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 21:30:28 2023 +0100 Fixed Default Values When Used Styles Are Removed commit 4f176979de161c35d6c7b07744bf0b982490f49f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 19:33:17 2023 +0100 Fixed Carriage Sounds (Again) commit 1e80af3303e5bf9f9179857944cc233b4be7ebaf Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 19:27:58 2023 +0100 Refactored Bogey Sizes To Seperate Class commit 129be61fee13e15e17c2e2a4ee0b08c9bc004846 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 17:20:17 2023 +0100 Fixed Bogey Sound Loading commit 2543185a55a60197494850582ca45d729e463f40 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 09:45:23 2023 +0100 Added Bogey Sound Customisation commit 1ad5ae95143f5240fcb83448a99a3924e6d96ce8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 00:44:53 2023 +0100 Added Size Transforms If Size Is Not Available For New Style commit 96566b161441928f2b419340796a27631e1aeb91 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 23:02:02 2023 +0100 Moved Bogey Style Inside Of Bogey Data And Implemented Bogey Data Communication commit eedd98473807f1261c7d5edaf0a222c081b57e69 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:53:55 2023 +0100 Fixed Large Bogey Size commit 68ca0974c6867e61980990a345634963079faf10 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:47:58 2023 +0100 Implemented Style Cycling & Default Values commit a55ba4267a5fd01ec77e9d826a01f0157c3a1271 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:46:15 2023 +0100 Implemented renderer instance creator commit 43523302c22d5da374d71c69499269eb8c98dadf Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:45:33 2023 +0100 Removed Unused Standard Bogey Instance commit 773e084422d5cba7e0c599c4e9e9199252e843a3 Merge: 0c0b5a1ed d1e1f7ec5 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Apr 1 18:50:15 2023 +0100 Merge remote-tracking branch 'origin/mc1.18/dev' into mc1.18/dev # Conflicts: # src/main/java/com/simibubi/create/AllBogeyStyles.java # src/main/java/com/simibubi/create/content/logistics/trains/BogeyTileEntityRenderer.java # src/main/java/com/simibubi/create/content/logistics/trains/entity/BogeyStyle.java # src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntityRenderer.java # src/main/java/com/simibubi/create/content/logistics/trains/entity/StandardBogeyInstance.java # src/main/java/com/simibubi/create/foundation/data/BogeyStyleBuilder.java commit 0c0b5a1ed65c5f425265b340772b1177a309c46d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Apr 1 18:39:58 2023 +0100 Linked Style Registry To Bogey Blocks commit 71f839ee51c4d609a19fe57632fb2e8fb0d2e5b7 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Apr 1 18:39:03 2023 +0100 Replaced size boolean with direct use of size enum commit 50ff0817045029c721a0a5e38956b3ecd228e52f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 30 18:47:13 2023 +0100 Added Resource Location To NBT helper methods commit d1e1f7ec5abeb825a3170a8f6972ffae43d58381 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 30 18:47:13 2023 +0100 Re-worked BogeyStyles commit da593fccb1cb95232290289775affd097153e30d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 30 18:46:02 2023 +0100 Refactored IBogeyBlock to AbstractBogeyBlock and extracted relevant StandardBogeyBlock implementations commit 17432c911342b1d4937a8d2d22d50a58296639e6 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Mar 25 10:20:50 2023 +0000 Fixed Incorrect Registry Loading commit c7d899369a4ad1a9962ed18c2ab02f58c985f5ae Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:44:03 2023 +0000 Registered Registers commit 6d862290d71b24b1d841444fa21dcb44ecc0d6c7 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:43:23 2023 +0000 Added BogeyStyleBuilder To Registrate commit 3dfb9e3b3b4b7cec3833b65838ce9523b0cf7666 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:43:08 2023 +0000 Implemented AllBogeyStyles commit c9e71b462d00e138778f3064bfcc3549a6f28f22 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:42:56 2023 +0000 Created BogeyStyleBuilder commit a90977d6429657ade13c889d90ec8cd733f176e9 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:42:25 2023 +0000 Created AllRegistries and BogeyStyle Registry commit 154d455f3fbdef3000ad3e35e88b0909b66c69f8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:41:56 2023 +0000 Added BogeyStyle Wrapper commit dfb7640bfc9850604c4ce05ff56338a4e2bbe2fa Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:50:41 2023 +0000 Removed left over logging statement commit 9920536cc319897a89dc1fc974c67cd0975fbcfd Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:50:18 2023 +0000 Implemented Secondary Shaft To Large Renderer commit 6cd40cc6f982226f2bbb9e04e3b8241f9cc36cb5 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:49:56 2023 +0000 Prevented Overwrite When Using Two BlockStates Of The Same Type With Different Properties commit 06fb901144de8d8df5b907e6261c76a018468f7d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:39:11 2023 +0000 Implemented Common Rendering For StandardBogeyRenderer commit 435b0f826663284f6544c034217516e36a0687d8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:38:40 2023 +0000 Added Common Renderer commit 96a0623dab84d7062a0871ddacabf4342e568867 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:38:29 2023 +0000 Implemented BlockState Models For Rendering commit 469d9d592b9aa925b26b1206a4ad03d73d422a92 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:42:28 2023 +0000 Added Standard Bogey Instance (Might be redundant) commit 2661d260d8c21e57df751b17812d89919713120f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:42:06 2023 +0000 Refactored Changes To Existing Methods commit 9ded16fbabb38e3415cc7b5452cbaea1bef98f61 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:41:15 2023 +0000 Integrated BogeyRenderer To BogeyInstance (Also Corrected Rendering In Contraption) commit 4a82fcbca1002267fc70998e7ac9c22cd92de52e Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:40:13 2023 +0000 Implemented Changes To StandardBogeyBlock commit 7238fb93f3d0fed43b091f44fd30814e505c544c Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:39:51 2023 +0000 Added Renderer To IBogeyBlock commit ded4c1f613cb33ae29b6bf631eb49abd2ec037f4 Merge: 91727cc84 3c02fe6ec Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Wed Mar 22 17:03:37 2023 +0000 Merge remote-tracking branch 'origin/mc1.18/dev' into mc1.18/dev commit 91727cc84a12b2fd27b1ce6e0d67bd182e34880b Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Wed Mar 22 17:03:28 2023 +0000 Implemented Model Data Initializer to StandardBogeyRenderer commit 6d98a1f46942d319729c2d61451da462f4188167 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Wed Mar 22 17:03:00 2023 +0000 Added Contraption Model Instance Initializer commit 3c02fe6ecc0c20f1c8ba6bd2ffd2334c2d9d9d73 Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Tue Mar 21 22:45:34 2023 +0000 Added missing render type check commit 6672c49649026e6a6f9a71d9a0bc9411016bcfce Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Tue Mar 21 22:37:36 2023 +0000 Re-created standard bogey with test api commit a8a9491fa07777218c7de3fe780ae17e05d5ac03 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Tue Mar 21 22:34:54 2023 +0000 Implemented Proof Of Concept Generic Bogey Renderer commit e4e5ac1c40cadb708429018dc17439eca87ee74e Author: SpottyTheTurtle <69260662+SpottyTheTurtle@users.noreply.github.com> Date: Sat Mar 11 21:34:59 2023 +0000 init
2023-05-09 18:23:47 +02:00
import com.simibubi.create.AllTags;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.fluids.pipes.BracketBlock;
import com.simibubi.create.content.contraptions.relays.elementary.BracketedTileEntityBehaviour;
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
2022-05-31 21:51:38 +02:00
import com.simibubi.create.content.curiosities.deco.PlacardBlock;
import com.simibubi.create.content.logistics.block.chute.AbstractChuteBlock;
import com.simibubi.create.content.logistics.block.redstone.NixieTubeBlock;
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayBlock;
import com.simibubi.create.content.logistics.trains.track.TrackBlock;
import com.simibubi.create.content.logistics.trains.track.TrackShape;
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
import com.simibubi.create.foundation.utility.Iterate;
import com.simibubi.create.foundation.utility.placement.IPlacementHelper;
import com.simibubi.create.foundation.utility.placement.PlacementHelpers;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction.AxisDirection;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.ChainBlock;
import net.minecraft.world.level.block.LanternBlock;
import net.minecraft.world.level.block.Mirror;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.SimpleWaterloggedBlock;
import net.minecraft.world.level.block.WallBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder;
import net.minecraft.world.level.block.state.properties.AttachFace;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.block.state.properties.Property;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
public class GirderBlock extends Block implements SimpleWaterloggedBlock, IWrenchable {
private static final int placementHelperId = PlacementHelpers.register(new GirderPlacementHelper());
public static final BooleanProperty X = BooleanProperty.create("x");
public static final BooleanProperty Z = BooleanProperty.create("z");
public static final BooleanProperty TOP = BooleanProperty.create("top");
public static final BooleanProperty BOTTOM = BooleanProperty.create("bottom");
public static final EnumProperty<Axis> AXIS = BlockStateProperties.AXIS;
public GirderBlock(Properties p_49795_) {
super(p_49795_);
registerDefaultState(defaultBlockState().setValue(WATERLOGGED, false)
.setValue(AXIS, Axis.Y)
.setValue(TOP, false)
.setValue(BOTTOM, false)
.setValue(X, false)
.setValue(Z, false));
}
@Override
protected void createBlockStateDefinition(Builder<Block, BlockState> pBuilder) {
super.createBlockStateDefinition(pBuilder.add(X, Z, TOP, BOTTOM, AXIS, WATERLOGGED));
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getBlockSupportShape(BlockState pState, BlockGetter pReader, BlockPos pPos) {
return Shapes.or(super.getBlockSupportShape(pState, pReader, pPos), AllShapes.EIGHT_VOXEL_POLE.get(Axis.Y));
}
@Override
public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand,
BlockHitResult pHit) {
if (pPlayer == null)
return InteractionResult.PASS;
ItemStack itemInHand = pPlayer.getItemInHand(pHand);
if (AllBlocks.SHAFT.isIn(itemInHand)) {
KineticTileEntity.switchToBlockState(pLevel, pPos, AllBlocks.METAL_GIRDER_ENCASED_SHAFT.getDefaultState()
.setValue(WATERLOGGED, pState.getValue(WATERLOGGED))
.setValue(TOP, pState.getValue(TOP))
.setValue(BOTTOM, pState.getValue(BOTTOM))
.setValue(GirderEncasedShaftBlock.HORIZONTAL_AXIS, pState.getValue(X) || pHit.getDirection()
.getAxis() == Axis.Z ? Axis.Z : Axis.X));
pLevel.playSound(null, pPos, SoundEvents.NETHERITE_BLOCK_HIT, SoundSource.BLOCKS, 0.5f, 1.25f);
if (!pLevel.isClientSide && !pPlayer.isCreative()) {
itemInHand.shrink(1);
if (itemInHand.isEmpty())
pPlayer.setItemInHand(pHand, ItemStack.EMPTY);
}
return InteractionResult.SUCCESS;
}
if (AllItems.WRENCH.isIn(itemInHand) && !pPlayer.isSteppingCarefully()) {
if (GirderWrenchBehavior.handleClick(pLevel, pPos, pState, pHit))
return InteractionResult.sidedSuccess(pLevel.isClientSide);
return InteractionResult.FAIL;
}
IPlacementHelper helper = PlacementHelpers.get(placementHelperId);
if (helper.matchesItem(itemInHand))
return helper.getOffset(pPlayer, pLevel, pState, pPos, pHit)
.placeInWorld(pLevel, (BlockItem) itemInHand.getItem(), pPlayer, pHand, pHit);
return InteractionResult.PASS;
}
@Override
public FluidState getFluidState(BlockState state) {
return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : Fluids.EMPTY.defaultFluidState();
}
@Override
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
return InteractionResult.PASS;
}
@Override
public void tick(BlockState p_60462_, ServerLevel p_60463_, BlockPos p_60464_, Random p_60465_) {
Block.updateOrDestroy(p_60462_, Block.updateFromNeighbourShapes(p_60462_, p_60463_, p_60464_), p_60463_,
p_60464_, 3);
}
@Override
public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState, LevelAccessor world,
BlockPos pos, BlockPos neighbourPos) {
if (state.getValue(WATERLOGGED))
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world));
Axis axis = direction.getAxis();
if (direction.getAxis() != Axis.Y) {
if (state.getValue(AXIS) != direction.getAxis()) {
Property<Boolean> updateProperty =
axis == Axis.X ? X : axis == Axis.Z ? Z : direction == Direction.UP ? TOP : BOTTOM;
if (!isConnected(world, pos, state, direction)
&& !isConnected(world, pos, state, direction.getOpposite()))
state = state.setValue(updateProperty, false);
}
} else if (state.getValue(AXIS) != Axis.Y) {
if (world.getBlockState(pos.above())
.getBlockSupportShape(world, pos.above())
.isEmpty())
state = state.setValue(TOP, false);
if (world.getBlockState(pos.below())
.getBlockSupportShape(world, pos.below())
.isEmpty())
state = state.setValue(BOTTOM, false);
}
for (Direction d : Iterate.directionsInAxis(axis))
state = updateState(world, pos, state, d);
return state;
}
@Override
public BlockState getStateForPlacement(BlockPlaceContext context) {
Level level = context.getLevel();
BlockPos pos = context.getClickedPos();
Direction face = context.getClickedFace();
FluidState ifluidstate = level.getFluidState(pos);
BlockState state = super.getStateForPlacement(context);
state = state.setValue(X, face.getAxis() == Axis.X);
state = state.setValue(Z, face.getAxis() == Axis.Z);
state = state.setValue(AXIS, face.getAxis());
for (Direction d : Iterate.directions)
state = updateState(level, pos, state, d);
return state.setValue(WATERLOGGED, Boolean.valueOf(ifluidstate.getType() == Fluids.WATER));
}
public static BlockState updateState(LevelAccessor level, BlockPos pos, BlockState state, Direction d) {
Axis axis = d.getAxis();
Property<Boolean> updateProperty = axis == Axis.X ? X : axis == Axis.Z ? Z : d == Direction.UP ? TOP : BOTTOM;
BlockState sideState = level.getBlockState(pos.relative(d));
if (axis.isVertical())
return updateVerticalProperty(level, pos, state, updateProperty, sideState, d);
if (state.getValue(AXIS) == axis)
state = state.setValue(updateProperty, true);
else if (sideState.getBlock() instanceof GirderEncasedShaftBlock
&& sideState.getValue(GirderEncasedShaftBlock.HORIZONTAL_AXIS) != axis)
state = state.setValue(updateProperty, true);
else if (sideState.getBlock() == state.getBlock() && sideState.getValue(updateProperty))
state = state.setValue(updateProperty, true);
else if (sideState.getBlock() instanceof NixieTubeBlock && NixieTubeBlock.getFacing(sideState) == d)
state = state.setValue(updateProperty, true);
2022-05-31 21:51:38 +02:00
else if (sideState.getBlock() instanceof PlacardBlock && PlacardBlock.connectedDirection(sideState) == d)
state = state.setValue(updateProperty, true);
else if (isFacingBracket(level, pos, d))
state = state.setValue(updateProperty, true);
for (Direction d2 : Iterate.directionsInAxis(axis == Axis.X ? Axis.Z : Axis.X)) {
BlockState above = level.getBlockState(pos.above()
.relative(d2));
Squashed commit of the following: commit 053dd09df6c426ab5e570f42a1edb5df3d0fbd01 Merge: 6d1e1c71d ecc645eba Author: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue May 9 18:22:42 2023 +0200 Merge branch '1.18/api' of https://github.com/Layers-of-Railways/Create into pr/4692 commit ecc645eba7bfd5f86b9bfb16ee1236a5d6432d3d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Tue May 9 11:24:11 2023 +0100 Implemented support for creating and removing individual blockstate models commit 6d1e1c71de7ce20f6fd9fc8ed4ed9bdd1072829a Author: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue May 9 12:16:54 2023 +0200 Less error logging when migrating old worlds commit 205e47352ec46f8e300167db69023c7938a52b58 Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 21:02:19 2023 -0700 Fix up ItemOutline commit 6cf204f6afd12671060d198d5a09efe9cd04c7b5 Merge: fe049bc77 2e3c906ce Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:28:56 2023 -0700 Merge remote-tracking branch 'upstream/mc1.18/dev' into 1.18/api # Conflicts: # src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageCouplingRenderer.java commit fe049bc771cc3a4dd91f5c91f098aa7448af6c8d Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:26:16 2023 -0700 Revert "Revert "Rewrite outline buffering"" This reverts commit 726bfaf0 commit 435b4c1c16153e30740d6878cf1f676b7a442c19 Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:20:23 2023 -0700 Clean up last bits of upside down rendering commit 662da6bab1f6ad96a4fa05c9ff8538080ac69ac2 Merge: 122fe77af d83285e8a Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:16:32 2023 -0700 Merge remote-tracking branch 'origin/1.18/api' into 1.18/api # Conflicts: # src/main/java/com/simibubi/create/content/logistics/trains/StandardBogeyRenderer.java commit 122fe77afa2df18dde7afe0bc6aee536f33b18bd Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 8 20:15:46 2023 -0700 Fix up upside down rendering commit d83285e8a4da5fcb6900c032e6bd8cd59f81bde8 Merge: 00e953a58 cdb0ad210 Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Sun May 7 07:02:18 2023 -0700 Merge pull request #3 from Layers-of-Railways/1.18/bogey-api Cleanup cycle groups and unused imports commit cdb0ad210b7c984b9fcfbecae8a2a0ebf052eb9d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 10:15:47 2023 +0100 Fixed merge artifact commit 457d5f33ed05075dbd0ffc38c17d3135b494dc26 Merge: 4e4e227a3 00e953a58 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 10:14:07 2023 +0100 Merge remote-tracking branch 'origin/1.18/api' into 1.18/api commit 00e953a585bd8e146b6304a19cebd174404ab1c3 Merge: 1e4d5504e a7a25896c Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Sun May 7 10:13:49 2023 +0100 Merge pull request #2 from Rabbitminers/mc1.18/dev Added Return Values and Small Cleanup commit a7a25896c1a5a0a353400ed329a46a461347553e Merge: 7622128be 1e4d5504e Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Sun May 7 10:13:40 2023 +0100 Merge branch '1.18/api' into mc1.18/dev commit 4e4e227a351cb7f70aa4476bebfad1c0e963b561 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 10:10:30 2023 +0100 Cleanup to cycle groups commit aa94fc97d154dcdcaaaa5b4d5e8311af9470d38a Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun May 7 09:50:50 2023 +0100 Removed unused import of Railways commit 7622128bec17931ea4029792d62c645d0f354e5f Merge: 81eeadb85 d52065808 Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Sun May 7 09:11:59 2023 +0100 Merge branch 'Layers-of-Railways:mc1.18/dev' into mc1.18/dev commit 1e4d5504ee4fe32d655e08acbeb6c492b5e8bb0b Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat May 6 18:03:39 2023 -0700 Don't revert non-buggy changes commit b306cf212471f2842311af071dc6b595cbf79216 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat May 6 18:00:59 2023 -0700 Take materials into consideration when trains pathfind commit fca02ae4bfade6f839533c11785cc3e56332f463 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat May 6 10:25:51 2023 -0700 Add materials to track graph commit 726bfaf0b5226a657b45ce4bd1aa365d891a27a4 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 21:16:49 2023 -0700 Revert "Rewrite outline buffering" This reverts commit d4106d545b0381c3bec304e727a136ea105a8468. commit 171897bed25ed8f7ad3999c8527bb649bb932c81 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 20:55:25 2023 -0700 Fix up style cycling commit cbd0cf20da482851f98f5312cbc40770a6c14f16 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 07:32:06 2023 -0700 clean up nether portal carriage handling commit d556f0887632664126a2e10cbb1c8fc6d37e2582 Author: techno-sam <linux.techno.sam@gmail.com> Date: Fri May 5 07:06:02 2023 -0700 upside down bogeys work in nether portals fixed coupling anchor offsets commit da26c0ccbf26b892013f6e365556eea6952009f2 Author: techno-sam <linux.techno.sam@gmail.com> Date: Thu May 4 09:32:53 2023 -0700 working on upside down bogeys in nether portals commit 81eeadb8532599d482f2259e58cedeaa602e8628 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon May 1 16:15:28 2023 +0100 Small cleanup commit c7e9df973cf3d0dab15992d06e6a51985d305ba8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon May 1 16:13:51 2023 +0100 Fixed issue raised in #1 commit 2f285b6eb7341879899895b1c5bbadd0137abb83 Author: techno-sam <linux.techno.sam@gmail.com> Date: Mon May 1 08:13:27 2023 -0700 add data gen commit 206de013111a879de133f62846e4f10d7228ea0a Merge: e91753a33 6564f4fa7 Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Mon May 1 06:49:21 2023 -0700 Merge pull request #1 from Rabbitminers/mc1.18/dev Bogey API commit 6564f4fa730f71920552fd2ad6f2c8255df69995 Merge: e5d759582 e91753a33 Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Mon May 1 10:40:32 2023 +0100 Merge branch '1.18/api' into mc1.18/dev commit e5d759582279b3a761c7011174ec77119f4f4f93 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon May 1 10:09:03 2023 +0100 Connected Custom Bogey Particle Types To CarriageParticles commit e91753a33cde6dbe0caaface45a7f377d75acbed Author: techno-sam <linux.techno.sam@gmail.com> Date: Sun Apr 30 19:51:26 2023 -0700 Fix up some problems commit 9815f1490f9d540986f85f49f297e2f014c312c4 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:12:43 2023 +0100 Implemented default data when shifting styles commit da30e78815afd7906ea82a9fba293f202c036fa8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:12:14 2023 +0100 Added Particles To Bogey Style (And Respective Builder) commit 08c000b8ba302a1c14f7479e70445e2c6d360bc3 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:01:19 2023 +0100 Added Backup Rendering If A Size Is Not Present commit 2b76e8d7b3b8d88355868ea31d4b6e3df11a7169 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 21:00:40 2023 +0100 Added Common Renderer To Remove Function commit 411ec36f573a570284b2bda566d8a006550983e8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:59:50 2023 +0100 Added Display Name To Standard Bogey Style commit 112306d5d49db10176d091f1f2ece893afb274dd Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:59:30 2023 +0100 Displayed new style name when changing betweeen them commit 5634670b2750a2df5dfee6de3f93bc895391300d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:06:00 2023 +0100 General Cleanup commit 0f7a8b7b24ef25c4266fc88f82995b609087904e Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:05:50 2023 +0100 Implemented Changes To Remaining Classes commit 8aedc00f963413ac0a02335bc9f914d45a82b4de Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:02:06 2023 +0100 Removed Bogey Style Handling From Registrate commit edf8079abf9750dc9f3ccf1aedf58fef80428385 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:01:40 2023 +0100 Removed Unused Registry Handling commit 6a185c4e727ecf55183cb885b109c0f5c5319854 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:01:16 2023 +0100 Refactored Bogey Sizes commit e10d07ddc3b70cfa6f4a210aa9a9e6bcc6200b7f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 30 20:01:00 2023 +0100 Overhauled Bogey Style commit 74d98a2ad538e2b9d35fdfd2270a14597d29f957 Merge: e629d02f5 4ebcf8201 Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Sun Apr 23 07:16:33 2023 -0700 Merge branch 'Creators-of-Create:mc1.18/dev' into 1.18/api commit e629d02f505c7de2d786a126fe49168351f17124 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sun Apr 9 07:18:22 2023 -0700 Track API Clean up code a bit commit d9ce6ce995128e64d079145b96273235c4fec783 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sun Apr 9 07:14:46 2023 -0700 Track API? Fix placement commit 7fbf08ba54ce3397045a8acdd6b7be813009ee7b Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat Apr 8 11:11:24 2023 -0700 Track API? Fix up some placement issues commit 35644f143426bc2cae1a63c4f09d7145a4e18983 Author: techno-sam <linux.techno.sam@gmail.com> Date: Sat Apr 8 08:11:13 2023 -0700 Track API maybe? Datagen Seems to be working commit f7c56b867a6afe52fa742f4d4c310db9788cc2ef Author: techno-sam <linux.techno.sam@gmail.com> Date: Thu Apr 6 21:24:31 2023 -0700 Track API maybe? Fix build - broken generic Not yet tested, but it is progress commit 2a59fd7e8ab91a6004abe4b92152a2a936a22c1b Author: techno-sam <linux.techno.sam@gmail.com> Date: Thu Apr 6 21:13:54 2023 -0700 Track API maybe? Not yet tested, but it is progress commit 5ba30d6a85dd2cfa49434cb55a25b258b02a9665 Merge: e4e5ac1c4 c2977bbff Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Thu Apr 6 17:10:39 2023 -0700 Merge branch 'Creators-of-Create:mc1.18/dev' into 1.18/api commit d52065808c5d250e6aec35878a5349be563c1d24 Merge: e4e5ac1c4 c2977bbff Author: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Thu Apr 6 17:10:26 2023 -0700 Merge branch 'Creators-of-Create:mc1.18/dev' into mc1.18/dev commit 53240bd42f08d839b233a3b75cb59aabb4648fb9 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 21:42:29 2023 +0100 Corrected Bogey InteractionResult To Pass commit 69326e361ab7d982a577f1e864c772967ad9c134 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 21:30:28 2023 +0100 Fixed Default Values When Used Styles Are Removed commit 4f176979de161c35d6c7b07744bf0b982490f49f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 19:33:17 2023 +0100 Fixed Carriage Sounds (Again) commit 1e80af3303e5bf9f9179857944cc233b4be7ebaf Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 19:27:58 2023 +0100 Refactored Bogey Sizes To Seperate Class commit 129be61fee13e15e17c2e2a4ee0b08c9bc004846 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 17:20:17 2023 +0100 Fixed Bogey Sound Loading commit 2543185a55a60197494850582ca45d729e463f40 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 09:45:23 2023 +0100 Added Bogey Sound Customisation commit 1ad5ae95143f5240fcb83448a99a3924e6d96ce8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Mon Apr 3 00:44:53 2023 +0100 Added Size Transforms If Size Is Not Available For New Style commit 96566b161441928f2b419340796a27631e1aeb91 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 23:02:02 2023 +0100 Moved Bogey Style Inside Of Bogey Data And Implemented Bogey Data Communication commit eedd98473807f1261c7d5edaf0a222c081b57e69 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:53:55 2023 +0100 Fixed Large Bogey Size commit 68ca0974c6867e61980990a345634963079faf10 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:47:58 2023 +0100 Implemented Style Cycling & Default Values commit a55ba4267a5fd01ec77e9d826a01f0157c3a1271 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:46:15 2023 +0100 Implemented renderer instance creator commit 43523302c22d5da374d71c69499269eb8c98dadf Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sun Apr 2 16:45:33 2023 +0100 Removed Unused Standard Bogey Instance commit 773e084422d5cba7e0c599c4e9e9199252e843a3 Merge: 0c0b5a1ed d1e1f7ec5 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Apr 1 18:50:15 2023 +0100 Merge remote-tracking branch 'origin/mc1.18/dev' into mc1.18/dev # Conflicts: # src/main/java/com/simibubi/create/AllBogeyStyles.java # src/main/java/com/simibubi/create/content/logistics/trains/BogeyTileEntityRenderer.java # src/main/java/com/simibubi/create/content/logistics/trains/entity/BogeyStyle.java # src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntityRenderer.java # src/main/java/com/simibubi/create/content/logistics/trains/entity/StandardBogeyInstance.java # src/main/java/com/simibubi/create/foundation/data/BogeyStyleBuilder.java commit 0c0b5a1ed65c5f425265b340772b1177a309c46d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Apr 1 18:39:58 2023 +0100 Linked Style Registry To Bogey Blocks commit 71f839ee51c4d609a19fe57632fb2e8fb0d2e5b7 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Apr 1 18:39:03 2023 +0100 Replaced size boolean with direct use of size enum commit 50ff0817045029c721a0a5e38956b3ecd228e52f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 30 18:47:13 2023 +0100 Added Resource Location To NBT helper methods commit d1e1f7ec5abeb825a3170a8f6972ffae43d58381 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 30 18:47:13 2023 +0100 Re-worked BogeyStyles commit da593fccb1cb95232290289775affd097153e30d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 30 18:46:02 2023 +0100 Refactored IBogeyBlock to AbstractBogeyBlock and extracted relevant StandardBogeyBlock implementations commit 17432c911342b1d4937a8d2d22d50a58296639e6 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Sat Mar 25 10:20:50 2023 +0000 Fixed Incorrect Registry Loading commit c7d899369a4ad1a9962ed18c2ab02f58c985f5ae Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:44:03 2023 +0000 Registered Registers commit 6d862290d71b24b1d841444fa21dcb44ecc0d6c7 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:43:23 2023 +0000 Added BogeyStyleBuilder To Registrate commit 3dfb9e3b3b4b7cec3833b65838ce9523b0cf7666 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:43:08 2023 +0000 Implemented AllBogeyStyles commit c9e71b462d00e138778f3064bfcc3549a6f28f22 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:42:56 2023 +0000 Created BogeyStyleBuilder commit a90977d6429657ade13c889d90ec8cd733f176e9 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:42:25 2023 +0000 Created AllRegistries and BogeyStyle Registry commit 154d455f3fbdef3000ad3e35e88b0909b66c69f8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Fri Mar 24 23:41:56 2023 +0000 Added BogeyStyle Wrapper commit dfb7640bfc9850604c4ce05ff56338a4e2bbe2fa Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:50:41 2023 +0000 Removed left over logging statement commit 9920536cc319897a89dc1fc974c67cd0975fbcfd Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:50:18 2023 +0000 Implemented Secondary Shaft To Large Renderer commit 6cd40cc6f982226f2bbb9e04e3b8241f9cc36cb5 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:49:56 2023 +0000 Prevented Overwrite When Using Two BlockStates Of The Same Type With Different Properties commit 06fb901144de8d8df5b907e6261c76a018468f7d Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:39:11 2023 +0000 Implemented Common Rendering For StandardBogeyRenderer commit 435b0f826663284f6544c034217516e36a0687d8 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:38:40 2023 +0000 Added Common Renderer commit 96a0623dab84d7062a0871ddacabf4342e568867 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 18:38:29 2023 +0000 Implemented BlockState Models For Rendering commit 469d9d592b9aa925b26b1206a4ad03d73d422a92 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:42:28 2023 +0000 Added Standard Bogey Instance (Might be redundant) commit 2661d260d8c21e57df751b17812d89919713120f Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:42:06 2023 +0000 Refactored Changes To Existing Methods commit 9ded16fbabb38e3415cc7b5452cbaea1bef98f61 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:41:15 2023 +0000 Integrated BogeyRenderer To BogeyInstance (Also Corrected Rendering In Contraption) commit 4a82fcbca1002267fc70998e7ac9c22cd92de52e Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:40:13 2023 +0000 Implemented Changes To StandardBogeyBlock commit 7238fb93f3d0fed43b091f44fd30814e505c544c Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Thu Mar 23 17:39:51 2023 +0000 Added Renderer To IBogeyBlock commit ded4c1f613cb33ae29b6bf631eb49abd2ec037f4 Merge: 91727cc84 3c02fe6ec Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Wed Mar 22 17:03:37 2023 +0000 Merge remote-tracking branch 'origin/mc1.18/dev' into mc1.18/dev commit 91727cc84a12b2fd27b1ce6e0d67bd182e34880b Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Wed Mar 22 17:03:28 2023 +0000 Implemented Model Data Initializer to StandardBogeyRenderer commit 6d98a1f46942d319729c2d61451da462f4188167 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Wed Mar 22 17:03:00 2023 +0000 Added Contraption Model Instance Initializer commit 3c02fe6ecc0c20f1c8ba6bd2ffd2334c2d9d9d73 Author: Rabbitminers <79579164+Rabbitminers@users.noreply.github.com> Date: Tue Mar 21 22:45:34 2023 +0000 Added missing render type check commit 6672c49649026e6a6f9a71d9a0bc9411016bcfce Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Tue Mar 21 22:37:36 2023 +0000 Re-created standard bogey with test api commit a8a9491fa07777218c7de3fe780ae17e05d5ac03 Author: Rabbitminers <Rabbitminers2.0@gmail.com> Date: Tue Mar 21 22:34:54 2023 +0000 Implemented Proof Of Concept Generic Bogey Renderer commit e4e5ac1c40cadb708429018dc17439eca87ee74e Author: SpottyTheTurtle <69260662+SpottyTheTurtle@users.noreply.github.com> Date: Sat Mar 11 21:34:59 2023 +0000 init
2023-05-09 18:23:47 +02:00
if (AllTags.AllBlockTags.GIRDABLE_TRACKS.matches(above)) {
TrackShape shape = above.getValue(TrackBlock.SHAPE);
if (shape == (axis == Axis.X ? TrackShape.XO : TrackShape.ZO))
state = state.setValue(updateProperty, true);
}
}
return state;
}
public static boolean isFacingBracket(BlockAndTintGetter level, BlockPos pos, Direction d) {
BlockEntity blockEntity = level.getBlockEntity(pos.relative(d));
if (!(blockEntity instanceof SmartTileEntity ste))
return false;
BracketedTileEntityBehaviour behaviour = ste.getBehaviour(BracketedTileEntityBehaviour.TYPE);
if (behaviour == null)
return false;
BlockState bracket = behaviour.getBracket();
if (bracket == null || !bracket.hasProperty(BracketBlock.FACING))
return false;
return bracket.getValue(BracketBlock.FACING) == d;
}
public static BlockState updateVerticalProperty(LevelAccessor level, BlockPos pos, BlockState state,
Property<Boolean> updateProperty, BlockState sideState, Direction d) {
boolean canAttach = false;
if (state.hasProperty(AXIS) && state.getValue(AXIS) == Axis.Y)
canAttach = true;
else if (isGirder(sideState) && isXGirder(sideState) == isZGirder(sideState))
canAttach = true;
2022-05-31 21:51:38 +02:00
else if (isGirder(sideState))
canAttach = true;
else if (sideState.hasProperty(WallBlock.UP) && sideState.getValue(WallBlock.UP))
canAttach = true;
else if (sideState.getBlock() instanceof NixieTubeBlock && NixieTubeBlock.getFacing(sideState) == d)
canAttach = true;
else if (sideState.getBlock() instanceof FlapDisplayBlock)
canAttach = true;
else if (sideState.getBlock() instanceof LanternBlock
&& (d == Direction.DOWN) == (sideState.getValue(LanternBlock.HANGING)))
canAttach = true;
else if (sideState.getBlock() instanceof ChainBlock && sideState.getValue(ChainBlock.AXIS) == Axis.Y)
canAttach = true;
else if (sideState.hasProperty(FACE)) {
if (sideState.getValue(FACE) == AttachFace.CEILING && d == Direction.DOWN)
canAttach = true;
else if (sideState.getValue(FACE) == AttachFace.FLOOR && d == Direction.UP)
canAttach = true;
} else if (sideState.getBlock() instanceof PlacardBlock && PlacardBlock.connectedDirection(sideState) == d)
canAttach = true;
else if (isFacingBracket(level, pos, d))
canAttach = true;
if (canAttach)
return state.setValue(updateProperty, true);
return state;
}
public static boolean isGirder(BlockState state) {
return state.getBlock() instanceof GirderBlock || state.getBlock() instanceof GirderEncasedShaftBlock;
}
public static boolean isXGirder(BlockState state) {
return (state.getBlock() instanceof GirderBlock && state.getValue(X))
|| (state.getBlock() instanceof GirderEncasedShaftBlock
&& state.getValue(GirderEncasedShaftBlock.HORIZONTAL_AXIS) == Axis.Z);
}
public static boolean isZGirder(BlockState state) {
return (state.getBlock() instanceof GirderBlock && state.getValue(Z))
|| (state.getBlock() instanceof GirderEncasedShaftBlock
&& state.getValue(GirderEncasedShaftBlock.HORIZONTAL_AXIS) == Axis.X);
}
@Override
public VoxelShape getShape(BlockState state, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) {
boolean x = state.getValue(GirderBlock.X);
boolean z = state.getValue(GirderBlock.Z);
return x ? z ? AllShapes.GIRDER_CROSS : AllShapes.GIRDER_BEAM.get(Axis.X)
: z ? AllShapes.GIRDER_BEAM.get(Axis.Z) : AllShapes.EIGHT_VOXEL_POLE.get(Axis.Y);
}
@Override
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
return false;
}
public static boolean isConnected(BlockAndTintGetter world, BlockPos pos, BlockState state, Direction side) {
Axis axis = side.getAxis();
if (state.getBlock() instanceof GirderBlock && !state.getValue(axis == Axis.X ? X : Z))
return false;
if (state.getBlock() instanceof GirderEncasedShaftBlock
&& state.getValue(GirderEncasedShaftBlock.HORIZONTAL_AXIS) == axis)
return false;
BlockPos relative = pos.relative(side);
BlockState blockState = world.getBlockState(relative);
if (blockState.isAir())
return false;
if (blockState.getBlock() instanceof NixieTubeBlock && NixieTubeBlock.getFacing(blockState) == side)
return true;
if (isFacingBracket(world, pos, side))
return true;
2022-05-31 21:51:38 +02:00
if (blockState.getBlock() instanceof PlacardBlock && PlacardBlock.connectedDirection(blockState) == side)
return true;
VoxelShape shape = blockState.getShape(world, relative);
if (shape.isEmpty())
return false;
if (Block.isFaceFull(shape, side.getOpposite()) && blockState.getMaterial()
.isSolidBlocking())
return true;
return AbstractChuteBlock.getChuteFacing(blockState) == Direction.DOWN;
}
@Override
public BlockState rotate(BlockState state, Rotation rot) {
state = state.setValue(AXIS,
rot.rotate(Direction.fromAxisAndDirection(state.getValue(AXIS), AxisDirection.POSITIVE))
.getAxis());
if (rot.rotate(Direction.EAST)
.getAxis() == Axis.X)
return state;
return state.setValue(X, state.getValue(Z))
.setValue(Z, state.getValue(Z));
}
@Override
public BlockState mirror(BlockState state, Mirror mirrorIn) {
return state;
}
}