mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-10 20:11:35 +01:00
Copycant
- Fixed Elevator Contraptions misaligning with their contacts after switching target floor mid-travel - Fixed crash when placing a clipboard into replaceable blocks mid-air - Fixed a typo in Smart Observer ponder scene - Fixed funnel flaps being offset to the side when flywheel is disabled - Fixed dyed valve handle using incorrect block particle textures - Fixed copycat blocks able to take on invalid materials through the use of data commands - Copycat blocks no longer retain nbt contents of their contained material's item when loaded from a schematic - Fixed pipe connector attachments missing textures on some orientations - Players can now sneak-pick to receive the copycat block itself, rather than its applied material - Fixed value input screen not closing correctly when 'use' keybind is not on its default setting - Deployers no longer fail to activate bearings and other components with value input slots - Fixed an incompatibility between legacy copper pack and xycraft override - Fixed netherite diving suit not protecting from fire damage when Quark is installed - Attempt to fix lighting issues with elevator contacts - Schematic and Quill no longer displays the full directory path in its confirmation message - Fixed z-fighting on metal bars models
This commit is contained in:
parent
a5de96c834
commit
5eea1cac70
58 changed files with 377 additions and 120 deletions
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -49,6 +49,7 @@ body:
|
|||
label: Mod Version
|
||||
description: The version of the mod you were using when the bug occured
|
||||
options:
|
||||
- "0.5.1b"
|
||||
- "0.5.1a"
|
||||
- "0.5.0i"
|
||||
- "0.5.0h"
|
||||
|
|
|
@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G
|
|||
org.gradle.daemon = false
|
||||
|
||||
# mod version info
|
||||
mod_version = 0.5.1.a
|
||||
mod_version = 0.5.1.b
|
||||
artifact_minecraft_version = 1.18.2
|
||||
|
||||
minecraft_version = 1.18.2
|
||||
|
|
|
@ -583,7 +583,7 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
4fd8347dfb20e6e5752b8b905850762a88c88c02 assets/create/lang/en_ud.json
|
||||
a442038c7d4f264e50016cff333616b310d717bf assets/create/lang/en_us.json
|
||||
2ffe0a94afbddd820110f78943dc5938edc9cb34 assets/create/lang/en_us.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
@ -609,8 +609,8 @@ eddf206f5fffbf9446461538da9fea70f5d22f0e assets/create/models/block/andesite_bel
|
|||
31784901768ebb9322a101710c5b6c16e7185271 assets/create/models/block/andesite_belt_funnel_pushing_unpowered.json
|
||||
574ece0c5d1877a07e46f0d86add876bf002541f assets/create/models/block/andesite_belt_funnel_retracted_powered.json
|
||||
2ea98218be00eea0f8b58072f970b4a2d096306d assets/create/models/block/andesite_belt_funnel_retracted_unpowered.json
|
||||
8d53939d0e5fbeaace7800ac055719fd24b8314f assets/create/models/block/andesite_cap.json
|
||||
d497453840a05b0b958890676b819215f3a118b3 assets/create/models/block/andesite_cap_alt.json
|
||||
acadb787b254e0c867b2a44602dbb61433789001 assets/create/models/block/andesite_cap.json
|
||||
eae12139d80b7b2bff414d0706b566a8d3257b9f assets/create/models/block/andesite_cap_alt.json
|
||||
4e44ccdc5e396c4380a7e59408db50553fa25226 assets/create/models/block/andesite_casing.json
|
||||
27d6d8f523a2f3bc4ee44c8529d7dff216ec6903 assets/create/models/block/andesite_encased_cogwheel.json
|
||||
33e2a5d0e63bf02af40d4e4de75e907f40e21f3b assets/create/models/block/andesite_encased_cogwheel_bottom.json
|
||||
|
@ -631,12 +631,12 @@ eeb2637590e8af1342c5494dea7faab0490f2f3e assets/create/models/block/andesite_fun
|
|||
ee665cf464ead6135de3f60c7e2ac475af6496d7 assets/create/models/block/andesite_ladder.json
|
||||
882871d4cd7b4925f300c09d00ba58785b27119e assets/create/models/block/andesite_pillar.json
|
||||
587491f19767bd682bbef00eaa890d4b8a320b7a assets/create/models/block/andesite_pillar_horizontal.json
|
||||
3d5bce20c58e7503b3868edac97f32556ccd1b6f assets/create/models/block/andesite_post.json
|
||||
722e1e40ca4153887d57c9c90d70d94dd87a0bc1 assets/create/models/block/andesite_post_ends.json
|
||||
d3cf0b65238c68b5ac250688e725a876098f9fc4 assets/create/models/block/andesite_post.json
|
||||
423e4da22c29c4d948fe06593c1fd1d66d400b2e assets/create/models/block/andesite_post_ends.json
|
||||
23dc81d6e683b0fd8c1dedcfdb8a4aa04f99b3a0 assets/create/models/block/andesite_scaffolding.json
|
||||
9634056c616296a8106350dc40222e904688585d assets/create/models/block/andesite_scaffolding_horizontal.json
|
||||
677d75755bc1fba56823292b2abe03a495ba2910 assets/create/models/block/andesite_side.json
|
||||
419288e05242def13d58c1a8174673c33732b4a5 assets/create/models/block/andesite_side_alt.json
|
||||
8d0dc522fafad383f2621a8419270740f2bb35fd assets/create/models/block/andesite_side.json
|
||||
41e4df4080235c5203d04490f40b4fe5dbda0406 assets/create/models/block/andesite_side_alt.json
|
||||
2724d5be033d7bdcba48c86eb09e58df8bceb97c assets/create/models/block/asurine_natural_0.json
|
||||
bbe56a2eb84835f26ed3beb0313ddd8be7a53ead assets/create/models/block/asurine_natural_1.json
|
||||
075af0b6658cfc8d241770033c01272d64f9e441 assets/create/models/block/asurine_natural_2.json
|
||||
|
@ -680,8 +680,8 @@ f0a9b05c69e67aa61b88f6db5d818ae191b3aad5 assets/create/models/block/brass_belt_f
|
|||
e0958b94c40e4aabbcbabd70be8a368eb877dcf9 assets/create/models/block/brass_belt_funnel_retracted_powered.json
|
||||
5715303e539e6005a347480e52db2c7e6676c716 assets/create/models/block/brass_belt_funnel_retracted_unpowered.json
|
||||
2b1ca994d2feec8321fdb0388028c20d40326eb7 assets/create/models/block/brass_block.json
|
||||
a094db3862d765e185c4849ce0a50967ee95d7c1 assets/create/models/block/brass_cap.json
|
||||
2dbb68d4917cac90fd6fe05abf5f7432288fdbed assets/create/models/block/brass_cap_alt.json
|
||||
d2ade9293f8cb4c01ae0c4c4428b5491af7b7bb1 assets/create/models/block/brass_cap.json
|
||||
6e838f20d10e7e9549abb1618076e172fd8478c1 assets/create/models/block/brass_cap_alt.json
|
||||
2e67c147d7c69aabd9ab9f7aa80f60671d5a03aa assets/create/models/block/brass_casing.json
|
||||
e174c6cafde3bee9722b5eb641951fa403e2aeec assets/create/models/block/brass_encased_cogwheel.json
|
||||
056576d83c9948e48841dd8f0009f00012473826 assets/create/models/block/brass_encased_cogwheel_bottom.json
|
||||
|
@ -700,12 +700,12 @@ c76668b6b61a3f81a08a1eadaa34fa8bfe68f912 assets/create/models/block/brass_funnel
|
|||
2d78db12acd90364658b36e8fe7dee7f24ea361b assets/create/models/block/brass_funnel_vertical_push_powered.json
|
||||
aa81eeb9771e59173ecf635f7c5334ac64c83b6d assets/create/models/block/brass_funnel_vertical_push_unpowered.json
|
||||
5620cf6b033dbfb3c43d03ddad18c432eb821997 assets/create/models/block/brass_ladder.json
|
||||
74d090cda85c793c285c028537c396a074366b9f assets/create/models/block/brass_post.json
|
||||
7e49c7ecf886d031f33a6fe748200e07099d7c9f assets/create/models/block/brass_post_ends.json
|
||||
ea6435f794399d21419faf9eac0616b39039fc98 assets/create/models/block/brass_post.json
|
||||
dae0a4cf2dbfeb7b28146684be53bb30bcd80048 assets/create/models/block/brass_post_ends.json
|
||||
de296beb1a8f1d51f2533e166800c65d69a8b091 assets/create/models/block/brass_scaffolding.json
|
||||
a276726447e4c22a259d224f8124ea863cb36b3c assets/create/models/block/brass_scaffolding_horizontal.json
|
||||
9ad24eae18506bf66c893fcb99ca15c9f50b7e58 assets/create/models/block/brass_side.json
|
||||
63c93da138d7787b415cb5459975cc2a220e2c1d assets/create/models/block/brass_side_alt.json
|
||||
3467f8121df6279b0dc15ffcbf702e49c31ab99e assets/create/models/block/brass_side.json
|
||||
718ca12496c81016ef36f160e3798faf5d0d8f33 assets/create/models/block/brass_side_alt.json
|
||||
71cd22dc2d847d317f19afb4b21802fbf5347e0b assets/create/models/block/brown_nixie_tube.json
|
||||
8ab097caaa0db0915ae9254f7d65092d9171bc60 assets/create/models/block/brown_sail.json
|
||||
4eed0ad902f5e84f2b6c160f3283e8028640e77d assets/create/models/block/brown_seat.json
|
||||
|
@ -715,12 +715,12 @@ a276726447e4c22a259d224f8124ea863cb36b3c assets/create/models/block/brass_scaffo
|
|||
c4d1e1b6e195c0b71c0b96546978cd24c4a4bfc4 assets/create/models/block/calcite_pillar_horizontal.json
|
||||
4156227e18c0896ce83f260f71b939abbbf4f01e assets/create/models/block/chocolate.json
|
||||
f9a3f0939ea43b404eb2826b94211a25fca5ebc2 assets/create/models/block/clockwork_bearing.json
|
||||
4db08101a5d03303506e89adc9ff394ed26cd2e6 assets/create/models/block/copper_cap.json
|
||||
06447f3c1e3f6d53d3887cedc20c322b146bdb1f assets/create/models/block/copper_cap_alt.json
|
||||
06055f336db422004ce25890d676eceb636022bc assets/create/models/block/copper_cap.json
|
||||
7d3c1490869c31fe86424c62ede51802209acc18 assets/create/models/block/copper_cap_alt.json
|
||||
1f01a4b6608f75145734b60ddf4a33ce318425ff assets/create/models/block/copper_casing.json
|
||||
c53dacdeb2e5c51de0706d87ad2d2c02a0d004b0 assets/create/models/block/copper_ladder.json
|
||||
6a6ac93ba3ba00319d0c22c858e414a9bdfcd748 assets/create/models/block/copper_post.json
|
||||
ceb03be484c0cf8e754ea39faab0834d820a5c6b assets/create/models/block/copper_post_ends.json
|
||||
70317cb082ef918158e843bf8b4a75fbf1126560 assets/create/models/block/copper_post.json
|
||||
9a79a6f2d261012f2457a37716e3e2d50d5e7e5d assets/create/models/block/copper_post_ends.json
|
||||
4d35570ae6b228528656f95faebb227dfbad1a1e assets/create/models/block/copper_scaffolding.json
|
||||
fa60214501fd2e5007672ec3af5db1f20878f5b5 assets/create/models/block/copper_scaffolding_horizontal.json
|
||||
9967651b9323174836a3179f088fa1dd7518270d assets/create/models/block/copper_shingle_slab.json
|
||||
|
@ -729,8 +729,8 @@ e577cb469c8adfb3fed81232419393611665a5f6 assets/create/models/block/copper_shing
|
|||
ed9e72e163883a784cee42157701955f30831fbf assets/create/models/block/copper_shingle_stairs_inner.json
|
||||
8ae100e7aa52c0e5baa3685974258e4e070242bb assets/create/models/block/copper_shingle_stairs_outer.json
|
||||
d4cb771acc143cb4361270db0025ca92864434cd assets/create/models/block/copper_shingles.json
|
||||
1169b17185f0a564f6e08a71617cec62687d2487 assets/create/models/block/copper_side.json
|
||||
667d98fdb2dc43067bc2591f0ae26e4d17c758ff assets/create/models/block/copper_side_alt.json
|
||||
9c3f8b768ee1390bc5289b046e41389a2704677e assets/create/models/block/copper_side.json
|
||||
485f4a3764a34a62e5511894b9b7520fd3648a3e assets/create/models/block/copper_side_alt.json
|
||||
8a10c93a3fc2d7bc7019a47a9fa89711bdd9232e assets/create/models/block/copper_tile_slab.json
|
||||
92c7cb2584fe0b1071eeafca2abb3f4d9143c330 assets/create/models/block/copper_tile_slab_top.json
|
||||
5ae6a5c2d7ab022a7df376d54c06316a9da77314 assets/create/models/block/copper_tile_stairs.json
|
||||
|
@ -5328,7 +5328,7 @@ ad8fa04f7bbbafd70d0ce158af78a35e899301e2 data/create/tags/blocks/girdable_tracks
|
|||
6e5d3b2123fbb00e7f439c091623619502551bca data/create/tags/blocks/non_movable.json
|
||||
10781e8cfcbb3486327aace3aa00e437fb44b331 data/create/tags/blocks/ore_override_stone.json
|
||||
760adb521c2e475a6414f97291f46c02d294fa74 data/create/tags/blocks/passive_boiler_heaters.json
|
||||
57f49df02be3d3cacaecf0315da34ea3fb614b8d data/create/tags/blocks/safe_nbt.json
|
||||
0eadc7879377cb0ced2211f526537f17d7c1ef27 data/create/tags/blocks/safe_nbt.json
|
||||
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/blocks/seats.json
|
||||
d063e12c9ef75f39518c6d129ea35d833464d547 data/create/tags/blocks/toolboxes.json
|
||||
ad8fa04f7bbbafd70d0ce158af78a35e899301e2 data/create/tags/blocks/tracks.json
|
||||
|
|
|
@ -2991,7 +2991,7 @@
|
|||
"create.ponder.smart_chute.text_4": "Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.smart_observer.header": "Advanced detection with Smart Observers",
|
||||
"create.ponder.smart_observer.text_1": "Smart Observers can be used detect a variety of events",
|
||||
"create.ponder.smart_observer.text_1": "Smart Observers can be used to detect a variety of events",
|
||||
"create.ponder.smart_observer.text_2": "It can detect items or fluids inside of generic containers",
|
||||
"create.ponder.smart_observer.text_3": "The filter slot can be used to look for specific contents only",
|
||||
"create.ponder.smart_observer.text_4": "It also activates when the block itself matches the filter",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_cap",
|
||||
"parent": "create:block/bars/cap",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/andesite_bars",
|
||||
"particle": "create:block/bars/andesite_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_cap_alt",
|
||||
"parent": "create:block/bars/cap_alt",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/andesite_bars",
|
||||
"particle": "create:block/bars/andesite_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_post",
|
||||
"parent": "create:block/bars/post",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/andesite_bars",
|
||||
"particle": "create:block/bars/andesite_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_post_ends",
|
||||
"parent": "create:block/bars/post_ends",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/andesite_bars",
|
||||
"particle": "create:block/bars/andesite_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_side",
|
||||
"parent": "create:block/bars/side",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/andesite_bars",
|
||||
"particle": "create:block/bars/andesite_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_side_alt",
|
||||
"parent": "create:block/bars/side_alt",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/andesite_bars",
|
||||
"particle": "create:block/bars/andesite_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_cap",
|
||||
"parent": "create:block/bars/cap",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/brass_bars",
|
||||
"particle": "create:block/bars/brass_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_cap_alt",
|
||||
"parent": "create:block/bars/cap_alt",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/brass_bars",
|
||||
"particle": "create:block/bars/brass_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_post",
|
||||
"parent": "create:block/bars/post",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/brass_bars",
|
||||
"particle": "create:block/bars/brass_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_post_ends",
|
||||
"parent": "create:block/bars/post_ends",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/brass_bars",
|
||||
"particle": "create:block/bars/brass_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_side",
|
||||
"parent": "create:block/bars/side",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/brass_bars",
|
||||
"particle": "create:block/bars/brass_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_side_alt",
|
||||
"parent": "create:block/bars/side_alt",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/brass_bars",
|
||||
"particle": "create:block/bars/brass_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_cap",
|
||||
"parent": "create:block/bars/cap",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/copper_bars",
|
||||
"particle": "create:block/bars/copper_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_cap_alt",
|
||||
"parent": "create:block/bars/cap_alt",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/copper_bars",
|
||||
"particle": "create:block/bars/copper_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_post",
|
||||
"parent": "create:block/bars/post",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/copper_bars",
|
||||
"particle": "create:block/bars/copper_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_post_ends",
|
||||
"parent": "create:block/bars/post_ends",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/copper_bars",
|
||||
"particle": "create:block/bars/copper_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_side",
|
||||
"parent": "create:block/bars/side",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/copper_bars",
|
||||
"particle": "create:block/bars/copper_bars",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "minecraft:block/iron_bars_side_alt",
|
||||
"parent": "create:block/bars/side_alt",
|
||||
"textures": {
|
||||
"bars": "create:block/bars/copper_bars",
|
||||
"particle": "create:block/bars/copper_bars",
|
||||
|
|
|
@ -24,8 +24,6 @@
|
|||
"create:pulse_repeater",
|
||||
"create:pulse_extender",
|
||||
"create:clipboard",
|
||||
"create:copycat_step",
|
||||
"create:copycat_panel",
|
||||
"#minecraft:banners",
|
||||
"#minecraft:signs"
|
||||
]
|
||||
|
|
|
@ -69,7 +69,7 @@ public class Create {
|
|||
|
||||
public static final String ID = "create";
|
||||
public static final String NAME = "Create";
|
||||
public static final String VERSION = "0.5.1a";
|
||||
public static final String VERSION = "0.5.1b";
|
||||
|
||||
public static final Logger LOGGER = LogUtils.getLogger();
|
||||
|
||||
|
|
|
@ -248,7 +248,7 @@ public class ElevatorContactBlock extends WrenchableDirectionalBlock
|
|||
}
|
||||
|
||||
public static int getLight(BlockState state) {
|
||||
return state.getValue(POWERING) ? 10 : state.getValue(CALLING) ? 5 : 0;
|
||||
return state.getValue(POWERING) ? 10 : 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -81,13 +81,19 @@ public class ElevatorPulleyBlockEntity extends PulleyBlockEntity {
|
|||
return;
|
||||
|
||||
double y = movedContraption.getY();
|
||||
int targetLevel = Mth.floor(0.5f + y);
|
||||
int targetLevel = Mth.floor(0.5f + y) + ec.contactYOffset;
|
||||
|
||||
Integer ecCurrentTargetY = ec.getCurrentTargetY(level);
|
||||
if (ecCurrentTargetY != null)
|
||||
targetLevel = ecCurrentTargetY;
|
||||
if (level.isClientSide())
|
||||
targetLevel = ec.clientYTarget;
|
||||
if (!wasArrived && !level.isClientSide()) {
|
||||
triggerContact(ec, targetLevel);
|
||||
AllSoundEvents.CONTRAPTION_DISASSEMBLE.play(level, null, worldPosition.below((int) offset), 0.75f, 0.8f);
|
||||
}
|
||||
|
||||
double diff = targetLevel - y;
|
||||
double diff = targetLevel - y - ec.contactYOffset;
|
||||
if (Math.abs(diff) > 1f / 128)
|
||||
diff *= 0.25f;
|
||||
movedContraption.setPos(movedContraption.position()
|
||||
|
|
|
@ -180,6 +180,7 @@ public abstract class CopycatBlock extends Block implements IBE<CopycatBlockEnti
|
|||
if (block instanceof StairBlock)
|
||||
return null;
|
||||
|
||||
if (pLevel != null) {
|
||||
VoxelShape shape = appliedState.getShape(pLevel, pPos);
|
||||
if (shape.isEmpty() || !shape.bounds()
|
||||
.equals(Shapes.block()
|
||||
|
@ -190,6 +191,7 @@ public abstract class CopycatBlock extends Block implements IBE<CopycatBlockEnti
|
|||
if (collisionShape.isEmpty())
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (face != null) {
|
||||
Axis axis = face.getAxis();
|
||||
|
@ -314,7 +316,7 @@ public abstract class CopycatBlock extends Block implements IBE<CopycatBlockEnti
|
|||
public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter level, BlockPos pos,
|
||||
Player player) {
|
||||
BlockState material = getMaterial(level, pos);
|
||||
if (AllBlocks.COPYCAT_BASE.has(material))
|
||||
if (AllBlocks.COPYCAT_BASE.has(material) || player != null && player.isSteppingCarefully())
|
||||
return new ItemStack(this);
|
||||
return material.getCloneItemStack(target, level, pos, player);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.content.schematics.requirement.ItemRequirement;
|
|||
import com.simibubi.create.content.schematics.requirement.ItemRequirement.ItemUseType;
|
||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.IPartialSafeNBT;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -27,7 +28,7 @@ import net.minecraftforge.client.model.data.ModelDataMap;
|
|||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
|
||||
public class CopycatBlockEntity extends SmartBlockEntity
|
||||
implements ISpecialBlockEntityItemRequirement, ITransformableBlockEntity {
|
||||
implements ISpecialBlockEntityItemRequirement, ITransformableBlockEntity, IPartialSafeNBT {
|
||||
|
||||
private BlockState material;
|
||||
private ItemStack consumedItem;
|
||||
|
@ -139,19 +140,49 @@ public class CopycatBlockEntity extends SmartBlockEntity
|
|||
consumedItem = ItemStack.of(tag.getCompound("Item"));
|
||||
|
||||
BlockState prevMaterial = material;
|
||||
if (!tag.contains("Material"))
|
||||
if (!tag.contains("Material")) {
|
||||
consumedItem = ItemStack.EMPTY;
|
||||
return;
|
||||
}
|
||||
|
||||
material = NbtUtils.readBlockState(tag.getCompound("Material"));
|
||||
|
||||
// Validate Material
|
||||
if (material != null && !clientPacket) {
|
||||
BlockState blockState = getBlockState();
|
||||
if (blockState == null)
|
||||
return;
|
||||
if (!(blockState.getBlock() instanceof CopycatBlock cb))
|
||||
return;
|
||||
BlockState acceptedBlockState = cb.getAcceptedBlockState(level, worldPosition, consumedItem, null);
|
||||
if (acceptedBlockState != null && material.is(acceptedBlockState.getBlock()))
|
||||
return;
|
||||
consumedItem = ItemStack.EMPTY;
|
||||
material = AllBlocks.COPYCAT_BASE.getDefaultState();
|
||||
}
|
||||
|
||||
if (clientPacket && prevMaterial != material)
|
||||
redraw();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeSafe(CompoundTag tag) {
|
||||
super.writeSafe(tag);
|
||||
|
||||
ItemStack stackWithoutNBT = consumedItem.copy();
|
||||
stackWithoutNBT.setTag(null);
|
||||
|
||||
write(tag, stackWithoutNBT, material);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void write(CompoundTag tag, boolean clientPacket) {
|
||||
super.write(tag, clientPacket);
|
||||
tag.put("Item", consumedItem.serializeNBT());
|
||||
write(tag, consumedItem, material);
|
||||
}
|
||||
|
||||
protected void write(CompoundTag tag, ItemStack stack, BlockState material) {
|
||||
tag.put("Item", stack.serializeNBT());
|
||||
tag.put("Material", NbtUtils.writeBlockState(material));
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,8 @@ public class ClipboardBlock extends FaceAttachedHorizontalDirectionalBlock
|
|||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
|
||||
BlockState stateForPlacement = super.getStateForPlacement(pContext);
|
||||
if (stateForPlacement == null)
|
||||
return null;
|
||||
if (stateForPlacement.getValue(FACE) != AttachFace.WALL)
|
||||
stateForPlacement = stateForPlacement.setValue(FACING, stateForPlacement.getValue(FACING)
|
||||
.getOpposite());
|
||||
|
|
|
@ -12,7 +12,6 @@ import com.jozufozu.flywheel.api.MaterialManager;
|
|||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.content.contraptions.AbstractContraptionEntity;
|
||||
import com.simibubi.create.content.contraptions.OrientedContraptionEntity;
|
||||
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
|
||||
|
@ -33,7 +32,6 @@ import com.simibubi.create.foundation.item.ItemHelper;
|
|||
import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode;
|
||||
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.NBTProcessors;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
@ -48,7 +46,6 @@ import net.minecraft.world.InteractionHand;
|
|||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.common.util.BlockSnapshot;
|
||||
|
@ -155,15 +152,7 @@ public class DeployerMovementBehaviour implements MovementBehaviour {
|
|||
ExtractionCountMode.EXACTLY, required.stack.getCount(), false);
|
||||
}
|
||||
|
||||
CompoundTag data = null;
|
||||
if (AllBlockTags.SAFE_NBT.matches(blockState)) {
|
||||
BlockEntity blockEntity = schematicWorld.getBlockEntity(pos);
|
||||
if (blockEntity != null) {
|
||||
data = blockEntity.saveWithFullMetadata();
|
||||
data = NBTProcessors.process(blockEntity, data, true);
|
||||
}
|
||||
}
|
||||
|
||||
CompoundTag data = BlockHelper.prepareBlockEntityData(blockState, schematicWorld.getBlockEntity(pos));
|
||||
BlockSnapshot blocksnapshot = BlockSnapshot.create(world.dimension(), world, pos);
|
||||
BlockHelper.placeSchematicBlock(world, blockState, pos, contextStack, data);
|
||||
if (ForgeEventFactory.onBlockPlace(player, blocksnapshot, Direction.UP))
|
||||
|
|
|
@ -49,7 +49,7 @@ public class FunnelRenderer extends SmartBlockEntityRenderer<FunnelBlockEntity>
|
|||
msr.centre()
|
||||
.rotateY(horizontalAngle)
|
||||
.unCentre();
|
||||
ms.translate(0.075f, 0, -be.getFlapOffset());
|
||||
ms.translate(0.075f / 16f, 0, -be.getFlapOffset());
|
||||
|
||||
for (int segment = 0; segment <= 3; segment++) {
|
||||
ms.pushPose();
|
||||
|
|
|
@ -10,7 +10,6 @@ import javax.annotation.Nullable;
|
|||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.content.kinetics.belt.BeltBlock;
|
||||
import com.simibubi.create.content.kinetics.belt.BeltBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.belt.BeltBlockEntity.CasingType;
|
||||
|
@ -24,10 +23,9 @@ import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
|||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.item.ItemHelper;
|
||||
import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode;
|
||||
import com.simibubi.create.foundation.utility.IPartialSafeNBT;
|
||||
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.NBTProcessors;
|
||||
import com.simibubi.create.infrastructure.config.AllConfigs;
|
||||
import com.simibubi.create.infrastructure.config.CSchematics;
|
||||
|
||||
|
@ -773,18 +771,7 @@ public class SchematicannonBlockEntity extends SmartBlockEntity implements MenuP
|
|||
return;
|
||||
}
|
||||
|
||||
CompoundTag data = null;
|
||||
if (blockEntity != null) {
|
||||
if (AllBlockTags.SAFE_NBT.matches(blockState)) {
|
||||
data = blockEntity.saveWithFullMetadata();
|
||||
data = NBTProcessors.process(blockEntity, data, true);
|
||||
} else if (blockEntity instanceof IPartialSafeNBT) {
|
||||
data = new CompoundTag();
|
||||
((IPartialSafeNBT) blockEntity).writeSafe(data);
|
||||
data = NBTProcessors.process(blockEntity, data, true);
|
||||
}
|
||||
}
|
||||
|
||||
CompoundTag data = BlockHelper.prepareBlockEntityData(blockState, blockEntity);
|
||||
launchBlock(target, icon, blockState, data);
|
||||
}
|
||||
|
||||
|
|
|
@ -213,7 +213,7 @@ public class SchematicAndQuillHandler {
|
|||
return;
|
||||
}
|
||||
Path file = result.file();
|
||||
Lang.translate("schematicAndQuill.saved", file)
|
||||
Lang.translate("schematicAndQuill.saved", file.getFileName())
|
||||
.sendStatus(player);
|
||||
firstPos = null;
|
||||
secondPos = null;
|
||||
|
|
|
@ -55,7 +55,7 @@ public class SchematicPlacePacket extends SimplePacketBase {
|
|||
if (placingAir && !includeAir)
|
||||
return;
|
||||
|
||||
CompoundTag data = blockEntity != null ? blockEntity.saveWithFullMetadata() : null;
|
||||
CompoundTag data = BlockHelper.prepareBlockEntityData(state, blockEntity);
|
||||
BlockHelper.placeSchematicBlock(world, state, pos, null, data);
|
||||
}, (pos, entity) -> {
|
||||
world.addFreshEntity(entity);
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.function.Consumer;
|
|||
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import com.mojang.blaze3d.platform.Window;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.AllKeys;
|
||||
|
@ -293,18 +294,34 @@ public class ValueSettingsScreen extends AbstractSimiScreen {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyReleased(int pKeyCode, int pScanCode, int pModifiers) {
|
||||
if (minecraft.options.keyUse.matches(pKeyCode, pScanCode)) {
|
||||
Window window = minecraft.getWindow();
|
||||
double x = minecraft.mouseHandler.xpos() * window.getGuiScaledWidth() / window.getScreenWidth();
|
||||
double y = minecraft.mouseHandler.ypos() * window.getGuiScaledHeight() / window.getScreenHeight();
|
||||
saveAndClose(x, y);
|
||||
return true;
|
||||
}
|
||||
return super.keyReleased(pKeyCode, pScanCode, pModifiers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseReleased(double pMouseX, double pMouseY, int pButton) {
|
||||
if (pButton == 1) {
|
||||
if (minecraft.options.keyUse.matchesMouse(pButton)) {
|
||||
saveAndClose(pMouseX, pMouseY);
|
||||
return true;
|
||||
}
|
||||
return super.mouseReleased(pMouseX, pMouseY, pButton);
|
||||
}
|
||||
|
||||
protected void saveAndClose(double pMouseX, double pMouseY) {
|
||||
ValueSettings closest = getClosestCoordinate((int) pMouseX, (int) pMouseY);
|
||||
// FIXME: value settings may be face-sensitive on future components
|
||||
AllPackets.getChannel()
|
||||
.sendToServer(new ValueSettingsPacket(pos, closest.row(), closest.value(), null, Direction.UP,
|
||||
AllKeys.ctrlDown()));
|
||||
onClose();
|
||||
return true;
|
||||
}
|
||||
return super.mouseReleased(pMouseX, pMouseY, pButton);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,14 +13,18 @@ import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsBehavio
|
|||
import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsBoard;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.ValueSettingsFormatter;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
|
||||
public class ScrollValueBehaviour extends BlockEntityBehaviour implements ValueSettingsBehaviour {
|
||||
|
||||
|
@ -175,4 +179,12 @@ public class ScrollValueBehaviour extends BlockEntityBehaviour implements ValueS
|
|||
return needsWrench;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShortInteract(Player player, InteractionHand hand, Direction side) {
|
||||
if (player instanceof FakePlayer)
|
||||
blockEntity.getBlockState()
|
||||
.use(getWorld(), player, hand,
|
||||
new BlockHitResult(VecHelper.getCenterOf(getPos()), side, getPos(), true));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -119,7 +119,6 @@ public class BuilderTransformers {
|
|||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.addLayer(() -> RenderType::translucent)
|
||||
.color(() -> CopycatBlock::wrappedColor)
|
||||
.tag(AllBlockTags.SAFE_NBT.tag)
|
||||
.transform(TagGen.axeOrPickaxe());
|
||||
}
|
||||
|
||||
|
|
|
@ -31,12 +31,12 @@ public class MetalBarsGen {
|
|||
String name, boolean specialEdge) {
|
||||
return (c, p) -> {
|
||||
|
||||
ModelFile post_ends = barsSubModel(p, name, "_post_ends", specialEdge);
|
||||
ModelFile post = barsSubModel(p, name, "_post", specialEdge);
|
||||
ModelFile cap = barsSubModel(p, name, "_cap", specialEdge);
|
||||
ModelFile cap_alt = barsSubModel(p, name, "_cap_alt", specialEdge);
|
||||
ModelFile side = barsSubModel(p, name, "_side", specialEdge);
|
||||
ModelFile side_alt = barsSubModel(p, name, "_side_alt", specialEdge);
|
||||
ModelFile post_ends = barsSubModel(p, name, "post_ends", specialEdge);
|
||||
ModelFile post = barsSubModel(p, name, "post", specialEdge);
|
||||
ModelFile cap = barsSubModel(p, name, "cap", specialEdge);
|
||||
ModelFile cap_alt = barsSubModel(p, name, "cap_alt", specialEdge);
|
||||
ModelFile side = barsSubModel(p, name, "side", specialEdge);
|
||||
ModelFile side_alt = barsSubModel(p, name, "side_alt", specialEdge);
|
||||
|
||||
p.getMultipartBuilder(c.get())
|
||||
.part()
|
||||
|
@ -115,7 +115,7 @@ public class MetalBarsGen {
|
|||
ResourceLocation barsTexture = p.modLoc("block/bars/" + name + "_bars");
|
||||
ResourceLocation edgeTexture = specialEdge ? p.modLoc("block/bars/" + name + "_bars_edge") : barsTexture;
|
||||
return p.models()
|
||||
.withExistingParent(name + suffix, p.mcLoc("block/iron_bars" + suffix))
|
||||
.withExistingParent(name + "_" + suffix, p.modLoc("block/bars/" + suffix))
|
||||
.texture("bars", barsTexture)
|
||||
.texture("particle", barsTexture)
|
||||
.texture("edge", edgeTexture);
|
||||
|
|
|
@ -9,14 +9,17 @@ import com.simibubi.create.content.equipment.armor.NetheriteDivingHandler;
|
|||
|
||||
import net.minecraft.world.entity.Entity;
|
||||
|
||||
@Mixin(Entity.class)
|
||||
@Mixin(value = Entity.class, priority = 900)
|
||||
public class EntityMixin {
|
||||
|
||||
@Inject(method = "fireImmune()Z", at = @At("RETURN"), cancellable = true)
|
||||
public void create$onFireImmune(CallbackInfoReturnable<Boolean> cir) {
|
||||
if (!cir.getReturnValueZ()) {
|
||||
Entity self = (Entity) (Object) this;
|
||||
boolean immune = self.getPersistentData().getBoolean(NetheriteDivingHandler.FIRE_IMMUNE_KEY);
|
||||
if (immune)
|
||||
cir.setReturnValue(immune);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.function.Consumer;
|
|||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.IMergeableBE;
|
||||
|
||||
|
@ -235,6 +236,21 @@ public class BlockHelper {
|
|||
.getBlock(), target.below());
|
||||
}
|
||||
|
||||
public static CompoundTag prepareBlockEntityData(BlockState blockState, BlockEntity blockEntity) {
|
||||
CompoundTag data = null;
|
||||
if (blockEntity == null)
|
||||
return data;
|
||||
if (AllBlockTags.SAFE_NBT.matches(blockState)) {
|
||||
data = blockEntity.saveWithFullMetadata();
|
||||
data = NBTProcessors.process(blockEntity, data, true);
|
||||
} else if (blockEntity instanceof IPartialSafeNBT) {
|
||||
data = new CompoundTag();
|
||||
((IPartialSafeNBT) blockEntity).writeSafe(data);
|
||||
data = NBTProcessors.process(blockEntity, data, true);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
public static void placeSchematicBlock(Level world, BlockState state, BlockPos target, ItemStack stack,
|
||||
@Nullable CompoundTag data) {
|
||||
BlockEntity existingBlockEntity = world.getBlockEntity(target);
|
||||
|
|
|
@ -44,7 +44,7 @@ public class DetectorScenes {
|
|||
scene.idle(10);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.text("Smart Observers can be used detect a variety of events")
|
||||
.text("Smart Observers can be used to detect a variety of events")
|
||||
.pointAt(util.vector.blockSurface(observerPos, Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(50);
|
||||
|
|
24
src/main/resources/assets/create/models/block/bars/cap.json
Normal file
24
src/main/resources/assets/create/models/block/bars/cap.json
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "block/iron_bars",
|
||||
"bars": "block/iron_bars",
|
||||
"edge": "block/iron_bars"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 8, 0, 8 ],
|
||||
"to": [ 8, 16, 9 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 8, 0, 7, 16 ], "texture": "#bars" },
|
||||
"east": { "uv": [ 7, 0, 8, 16 ], "texture": "#bars" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0, 9 ],
|
||||
"to": [ 9, 16, 9 ],
|
||||
"faces": {
|
||||
"north": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" },
|
||||
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "block/iron_bars",
|
||||
"bars": "block/iron_bars",
|
||||
"edge": "block/iron_bars"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 8, 0, 7 ],
|
||||
"to": [ 8, 16, 8 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 8, 0, 9, 16 ], "texture": "#bars" },
|
||||
"east": { "uv": [ 9, 0, 8, 16 ], "texture": "#bars" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0, 7 ],
|
||||
"to": [ 9, 16, 7 ],
|
||||
"faces": {
|
||||
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" },
|
||||
"south": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
23
src/main/resources/assets/create/models/block/bars/post.json
Normal file
23
src/main/resources/assets/create/models/block/bars/post.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "block/iron_bars",
|
||||
"bars": "block/iron_bars"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 8, 0, 7 ],
|
||||
"to": [ 8, 16, 9 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" },
|
||||
"east": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0, 8 ],
|
||||
"to": [ 9, 16, 8 ],
|
||||
"faces": {
|
||||
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#bars" },
|
||||
"south": { "uv": [ 9, 0, 7, 16 ], "texture": "#bars" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "block/iron_bars",
|
||||
"edge": "block/iron_bars"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 7, 0.05, 7 ],
|
||||
"to": [ 9, 0.05, 9 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 15.95, 7 ],
|
||||
"to": [ 9, 15.95, 9 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
37
src/main/resources/assets/create/models/block/bars/side.json
Normal file
37
src/main/resources/assets/create/models/block/bars/side.json
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "block/iron_bars",
|
||||
"bars": "block/iron_bars",
|
||||
"edge": "block/iron_bars"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 8, 0, 0 ],
|
||||
"to": [ 8, 16, 8 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 16, 0, 8, 16 ], "texture": "#bars" },
|
||||
"east": { "uv": [ 8, 0, 16, 16 ], "texture": "#bars" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0, 0 ],
|
||||
"to": [ 9, 16, 7 ],
|
||||
"faces": {
|
||||
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0.05, 0 ],
|
||||
"to": [ 9, 0.05, 7 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9, 0, 7, 7 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 15.95, 0 ],
|
||||
"to": [ 9, 15.95, 7 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9, 0, 7, 7 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "block/iron_bars",
|
||||
"bars": "block/iron_bars",
|
||||
"edge": "block/iron_bars"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 8, 0, 8 ],
|
||||
"to": [ 8, 16, 16 ],
|
||||
"faces": {
|
||||
"west": { "uv": [ 8, 0, 0, 16 ], "texture": "#bars" },
|
||||
"east": { "uv": [ 0, 0, 8, 16 ], "texture": "#bars" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0, 9 ],
|
||||
"to": [ 9, 16, 16 ],
|
||||
"faces": {
|
||||
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south" },
|
||||
"down": { "uv": [ 9, 9, 7, 16 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 9, 9, 16 ], "texture": "#edge" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 0.05, 9 ],
|
||||
"to": [ 9, 0.05, 16 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9, 9, 7, 16 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 9, 9, 16 ], "texture": "#edge" }
|
||||
}
|
||||
},
|
||||
{ "from": [ 7, 15.95, 9 ],
|
||||
"to": [ 9, 15.95, 16 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 9, 9, 7, 16 ], "texture": "#edge" },
|
||||
"up": { "uv": [ 7, 9, 9, 16 ], "texture": "#edge" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
"east": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [13, 8, 16, 11], "rotation": 90, "texture": "#0", "cullface": "down"}
|
||||
"down": {"uv": [13, 8, 16, 11], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -28,7 +28,7 @@
|
|||
"south": {"uv": [4, 8, 9, 9.5], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [9, 9.5, 4, 8], "texture": "#0"},
|
||||
"up": {"uv": [6, 11, 11, 16], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#0", "cullface": "down"}
|
||||
"down": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 8, 13.5, 11], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [13, 8, 16, 11], "texture": "#0", "cullface": "east"},
|
||||
"east": {"uv": [13, 8, 16, 11], "texture": "#0"},
|
||||
"south": {"uv": [12, 8, 13.5, 11], "texture": "#0"},
|
||||
"up": {"uv": [12, 8, 13.5, 11], "texture": "#0"},
|
||||
"down": {"uv": [12, 8, 13.5, 11], "texture": "#0"}
|
||||
|
@ -24,7 +24,7 @@
|
|||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 9.5, 4, 8], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "east"},
|
||||
"east": {"uv": [11, 11, 16, 16], "texture": "#0"},
|
||||
"south": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [6, 11, 11, 16], "texture": "#0"},
|
||||
"up": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"},
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
"to": [13.05, 13.05, 2],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "north"},
|
||||
"north": {"uv": [11, 11, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [6, 11, 11, 16], "texture": "#0"},
|
||||
"west": {"uv": [9, 9.5, 4, 8], "rotation": 90, "texture": "#0"},
|
||||
|
@ -24,7 +24,7 @@
|
|||
"to": [11.05, 11.05, -0.95],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 8, 16, 11], "texture": "#0", "cullface": "north"},
|
||||
"north": {"uv": [13, 8, 16, 11], "texture": "#0"},
|
||||
"east": {"uv": [12, 8, 13.5, 11], "texture": "#0"},
|
||||
"west": {"uv": [12, 8, 13.5, 11], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [12, 8, 13.5, 11], "rotation": 270, "texture": "#0"},
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [13.5, 8, 12, 11], "texture": "#0"},
|
||||
"south": {"uv": [16, 8, 13, 11], "texture": "#0", "cullface": "south"},
|
||||
"south": {"uv": [16, 8, 13, 11], "texture": "#0"},
|
||||
"west": {"uv": [13.5, 8, 12, 11], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [13.5, 8, 12, 11], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}
|
||||
|
@ -25,7 +25,7 @@
|
|||
"faces": {
|
||||
"north": {"uv": [11, 11, 6, 16], "texture": "#0"},
|
||||
"east": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [16, 11, 11, 16], "texture": "#0", "cullface": "south"},
|
||||
"south": {"uv": [16, 11, 11, 16], "texture": "#0"},
|
||||
"west": {"uv": [9, 8, 4, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [4, 9.5, 9, 8], "texture": "#0"},
|
||||
"down": {"uv": [9, 8, 4, 9.5], "texture": "#0"}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"east": {"uv": [4, 9.5, 9, 8], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [4, 9.5, 9, 8], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [9, 8, 4, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#0", "cullface": "up"},
|
||||
"up": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [11, 11, 6, 16], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
|
@ -28,7 +28,7 @@
|
|||
"east": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [16, 8, 13, 11], "rotation": 90, "texture": "#0", "cullface": "up"}
|
||||
"up": {"uv": [16, 8, 13, 11], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"north": {"uv": [9, 8, 4, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [11, 11, 6, 16], "texture": "#0"},
|
||||
"south": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [16, 11, 11, 16], "texture": "#0", "cullface": "west"},
|
||||
"west": {"uv": [16, 11, 11, 16], "texture": "#0"},
|
||||
"up": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [9, 8, 4, 9.5], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
|||
"faces": {
|
||||
"north": {"uv": [13.5, 8, 12, 11], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [13.5, 8, 12, 11], "texture": "#0"},
|
||||
"west": {"uv": [16, 8, 13, 11], "texture": "#0", "cullface": "west"},
|
||||
"west": {"uv": [16, 8, 13, 11], "texture": "#0"},
|
||||
"up": {"uv": [13.5, 8, 12, 11], "texture": "#0"},
|
||||
"down": {"uv": [13.5, 8, 12, 11], "texture": "#0"}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
"model": "create:models/block/valve_handle/valve_handle.obj",
|
||||
"textures": {
|
||||
"3": "create:block/valve_handle/valve_handle_copper",
|
||||
"particle": "block/copper_block"
|
||||
"particle": "#3"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/copper_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/exposed_copper"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/oxidized_copper"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "minecraft:block/weathered_copper"
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue