diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 870f56f0e..10d8136e7 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -20,7 +20,6 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets/create/blockstates/andesite_bric 1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json f9fa6aa530eb0891a74eadfbebc663172a57147a assets/create/blockstates/basin.json f25693a9429f6337149ff24f27900dc4eb82a7c2 assets/create/blockstates/belt.json -40d10934934ea142d71fc6ce598b1455c3ad47b4 assets/create/blockstates/belt_observer.json cf9045eb16e5299a1d917c4cb536289f49411276 assets/create/blockstates/birch_window.json 94a1a91403eb4b035fec48071e7fcae57a8a6abd assets/create/blockstates/birch_window_pane.json 58b07d2af6030342f0354f6d3fd0ee128d2d74b4 assets/create/blockstates/black_seat.json @@ -43,6 +42,7 @@ b59324f051f21d8ce1a48a08f4721a61a3c414d6 assets/create/blockstates/chute.json 4947c261310445fa55b92038326ac82967d192dd assets/create/blockstates/clockwork_bearing.json 1f33834c685e3243882acfe20183fe64dfa872be assets/create/blockstates/clutch.json e5e3757e99c139d67b2a70288466d8a74d818841 assets/create/blockstates/cogwheel.json +36f54136a7756c97f71bc6b47ef4e8e575e72879 assets/create/blockstates/content_observer.json f8eff64c75fc599e9a44a003f54ae9931cd8ce7c assets/create/blockstates/copper_block.json cabf6b8c59eb0e3d56a0a5a856ca058bb3200882 assets/create/blockstates/copper_casing.json 3355a852cdc717e257ca19b3db836068964733e3 assets/create/blockstates/copper_ore.json @@ -349,17 +349,17 @@ c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets/create/blockstates/weathered_lim a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -c87674f2935327f78657f1bb44b3b10b6697a548 assets/create/lang/en_ud.json -62a4c9e5454fd6e899495c95d6fddd020d472bc7 assets/create/lang/en_us.json -42081320880e3248cc1e7e667d38bb3be682790a assets/create/lang/unfinished/de_de.json -8fc3d8467436b5dd9221b0ed72b1a64bf83d0767 assets/create/lang/unfinished/fr_fr.json -a5125e0ca8bb93c7c4f11d49a80a155a7ea14b16 assets/create/lang/unfinished/it_it.json -b173b6500f8a675e266864310ab8e205721dbe12 assets/create/lang/unfinished/ja_jp.json -1af8e96a3129f8aac458b75eff69378a0cc9dd7d assets/create/lang/unfinished/ko_kr.json -343a4455ca0f29b2ae6ac439030c0dfde0e4c59b assets/create/lang/unfinished/nl_nl.json -d7bd8d85e3b8def1b4fe72da0a43845d1bb61c1c assets/create/lang/unfinished/pt_br.json -6e7fdb53ae3121e5575021bb224d1bfbe257c38b assets/create/lang/unfinished/ru_ru.json -1a3e1309d92024445dae821d25168dab74ff5cdd assets/create/lang/unfinished/zh_cn.json +5e8bf32d45aae9207aa4063803d073dda12fefc9 assets/create/lang/en_ud.json +a623a699b4b15b1793846f2981f5ddfcf5f70eaa assets/create/lang/en_us.json +20b98763fcc45b49d4f08c0567de1305ae2ca08b assets/create/lang/unfinished/de_de.json +49356dba136af4ba87c61adcec8a5e86ffed0d19 assets/create/lang/unfinished/fr_fr.json +7aeadfee8cf3f5037a892d20dc5ed5a73015822d assets/create/lang/unfinished/it_it.json +da24efa68279d5bd95c55210cc5ecb46f7b28550 assets/create/lang/unfinished/ja_jp.json +e391370d913d9ea71b061ead791e335c5fd5abe1 assets/create/lang/unfinished/ko_kr.json +920688bd6cfdbb4a3f3a35700868b5639f10bf2a assets/create/lang/unfinished/nl_nl.json +d57b0279090380d35f6f56a34864114b210d815c assets/create/lang/unfinished/pt_br.json +4f957b1130d5f2ae953d687d754417de0f62fd61 assets/create/lang/unfinished/ru_ru.json +c2198b6cee5fdba4049fd2166f6382e5bbaf6581 assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -415,22 +415,6 @@ aaf2e4259bcfcedd3400e9acb2d64c0cf06f7fb1 assets/create/models/block/andesite_tun c9aec5c30e6821c8f125202cad236afa48f6c358 assets/create/models/block/andesite_tunnel/t_left.json 1dcb8fe81a275ef8a49c04db021ad29abe8b38ae assets/create/models/block/andesite_tunnel/t_right.json e2801a0c3fe8e1c2485291485b977f581fdc8b7c assets/create/models/block/andesite_tunnel/window.json -e8bfb63e0a4426f9d95cd111640169b218dead1b assets/create/models/block/belt_observer/detect.json -a2e63810eceb028484b193ddf4315e1811950dc8 assets/create/models/block/belt_observer/detect_belt.json -034c308d46def892e6638ac0b3374849a6a88a26 assets/create/models/block/belt_observer/detect_belt_powered.json -0bddcf5449e18abbc11e984f4b125141b14baaf7 assets/create/models/block/belt_observer/detect_powered.json -c521e51b557f4643027fe7a8ec9d4f6a4ade1279 assets/create/models/block/belt_observer/eject.json -79863633fc1fec21241650a5eb3203cf4d3fd210 assets/create/models/block/belt_observer/eject_belt.json -a6d8262629371113147f8b13986a6f72c51fc100 assets/create/models/block/belt_observer/eject_belt_powered.json -2dad3c6bd49c4b608ad7c30567bb3e5845c46cf8 assets/create/models/block/belt_observer/eject_powered.json -e1b801f2f37a78f18a787f4484f7b8ec57671c4f assets/create/models/block/belt_observer/pulse.json -fc6dd3e43af11ede6ef5d402d30715ebf69dac2e assets/create/models/block/belt_observer/pulse_belt.json -7d2490e4228ce4f0ee8875d5ac5fef92eea68015 assets/create/models/block/belt_observer/pulse_belt_powered.json -fa79580db6187c864bc8148a41987ecdd1eb03b7 assets/create/models/block/belt_observer/pulse_powered.json -4f14a279e486242a65b4d6dbcdfc33db9b71942b assets/create/models/block/belt_observer/split.json -670adf5eee3f7a4b99267bd837334be6a8173e4e assets/create/models/block/belt_observer/split_belt.json -819d3107908ce21220ad45b0ae3e1c92c13c601d assets/create/models/block/belt_observer/split_belt_powered.json -76078947044ca9fc7860708ae9717a0ae47ebb1e assets/create/models/block/belt_observer/split_powered.json 87f90e8256060683b834d57d3c11248d5ea84e34 assets/create/models/block/birch_window.json 94317904054cbf651846716d8af3bca618d3130f assets/create/models/block/birch_window_pane_noside.json 7a4cae5b075c4ac96a3113afafa391d024fc117f assets/create/models/block/birch_window_pane_noside_alt.json @@ -1028,7 +1012,6 @@ b0f664dd6de3d0ee9afcb6223fbcd53b97fa0d65 assets/create/models/item/andesite_cobb c0e35daccfb398947532e9499d6bda963387cd9c assets/create/models/item/andesite_tunnel.json bf1fc6bdf7fca6f1958a2d3e96202c1cecb50669 assets/create/models/item/basin.json 1da382e7e58eaa9788f5b1d92221ccac573e068f assets/create/models/item/belt_connector.json -695a69d5854e2eb134b55d855bd2b7b18808a01d assets/create/models/item/belt_observer.json 9044243882cfd49a2827e1b910a4c9b0e46daa47 assets/create/models/item/birch_window.json 6ed49f59ea91068ef68720f43e67a9237594bdf0 assets/create/models/item/birch_window_pane.json 22632bd681c8a605f0845f7549770389a741156a assets/create/models/item/black_seat.json @@ -1054,6 +1037,7 @@ fe67c3f380d17735a9436a4579a8be1a02b8e4a0 assets/create/models/item/chute.json b1531a7bd3f7f27b9587d13e818a93dc2d088bc8 assets/create/models/item/clockwork_bearing.json 0a2a0f0aafeab0088172f77afd40c1fa2cc1f2b8 assets/create/models/item/clutch.json dcb09deae110077bcddf090996b51cc66e9a7de3 assets/create/models/item/cogwheel.json +7717e3b21cff39f497f07687c70c1fa40eaa756d assets/create/models/item/content_observer.json 965a90a882d85dba93b30af9bce7ecf8e68ce747 assets/create/models/item/copper_block.json 759bcb5fe7dfdd628716f9b4ff19a5ab00393381 assets/create/models/item/copper_casing.json c5bcfba46f5824654dedaa2c5d5f42deb29e3baf assets/create/models/item/copper_ingot.json @@ -1540,9 +1524,9 @@ afc74c4dda92c4976703a1c488182188c3482839 data/create/advancements/recipes/create 4793d335955c9d6c293e1358dc227eac93a5fe61 data/create/advancements/recipes/create.base/crafting/logistics/adjustable_repeater.json bbcf2a888e12c41aedf7b44a1b0d92b7b9fe853b data/create/advancements/recipes/create.base/crafting/logistics/andesite_funnel.json b53ed0a286512d2695caf0430433483bdeeeef95 data/create/advancements/recipes/create.base/crafting/logistics/andesite_tunnel.json -678bdd68437274edf4630af1440525764be35dc6 data/create/advancements/recipes/create.base/crafting/logistics/belt_observer.json 66dbb3486c5d38d309dd480e3f2ab0eb5ff9e559 data/create/advancements/recipes/create.base/crafting/logistics/brass_funnel.json 2127c0f1d822cc88a24d98ebb9eead9de5837ffe data/create/advancements/recipes/create.base/crafting/logistics/brass_tunnel.json +ca9ad1e9129745c3d21af86bc795b5a65ba086a2 data/create/advancements/recipes/create.base/crafting/logistics/content_observer.json b9b0a8bfff61a89149d4fcadf679f753385212d0 data/create/advancements/recipes/create.base/crafting/logistics/powered_latch.json 9951f2d35f7444c98c022142119b18b1289ca734 data/create/advancements/recipes/create.base/crafting/logistics/powered_toggle_latch.json 76d4c5f04d0a3e6817127a828594388b18f210c4 data/create/advancements/recipes/create.base/crafting/logistics/pulse_repeater.json @@ -2010,7 +1994,6 @@ d3202a337c15c8b8ec41fa5879bb94327bb75057 data/create/loot_tables/blocks/andesite 317aa99086127c649981b7b2fc85e66774a30f58 data/create/loot_tables/blocks/andesite_tunnel.json 14bf1764b9313893b6a6f57094f9506ac9fa71a8 data/create/loot_tables/blocks/basin.json c7f81e30c31837a287d6d6040cdb02c7dec11441 data/create/loot_tables/blocks/belt.json -1104e323abb2a8c25769c47dc5d1154965113cc9 data/create/loot_tables/blocks/belt_observer.json 67a8e2513c3cb09e6fe80279fda94f79d5018c37 data/create/loot_tables/blocks/birch_window.json bf1d5843f93533f84bc4adec5b77da2114fa2025 data/create/loot_tables/blocks/birch_window_pane.json cccc209d172cc7bac76f1b4ac79085ee90742ab2 data/create/loot_tables/blocks/black_seat.json @@ -2033,6 +2016,7 @@ adde89e46b12de1eee6fd0c5cb98c5f45feefc15 data/create/loot_tables/blocks/chiseled 778b53c36d73b6e9c78fd6c091c9c3535c3c18f7 data/create/loot_tables/blocks/clockwork_bearing.json d76113310fc56eca6382d44df174096f2210d416 data/create/loot_tables/blocks/clutch.json 673ba3a5deae9133b917d16c9eb87fe4c2873c8a data/create/loot_tables/blocks/cogwheel.json +096af6b5df6e87d36cb936eea9b00982a554f4af data/create/loot_tables/blocks/content_observer.json f38802b919c49f162f102d6e5d94113f05bf4ab1 data/create/loot_tables/blocks/copper_block.json 5a65a18ea787130ac7b8f5652bfa5ed187446649 data/create/loot_tables/blocks/copper_casing.json 31a51237763c374b7cdf39b9b62c14e965871047 data/create/loot_tables/blocks/copper_ore.json @@ -2480,9 +2464,9 @@ c465151b64381e2222203bf069b717435fdc2b26 data/create/recipes/crafting/logistics/ 34bcdffae0b104829161c86b7d161068f890daa2 data/create/recipes/crafting/logistics/adjustable_repeater.json fc75c87159569cb6ee978e6d51b0c3b0f504b5de data/create/recipes/crafting/logistics/andesite_funnel.json 660e824ab6042c145f02ffcfe95a34c38f113e19 data/create/recipes/crafting/logistics/andesite_tunnel.json -95cc99c90cb146eb85023748c4230840a4e6568e data/create/recipes/crafting/logistics/belt_observer.json 9b4e74f9a950191134d978bf45c3339212677b0d data/create/recipes/crafting/logistics/brass_funnel.json 2ae06df0357c494b53db0ddf9655c60ef2022d0b data/create/recipes/crafting/logistics/brass_tunnel.json +8559045b42abd99490fb9a3cf5d06b08fd014b38 data/create/recipes/crafting/logistics/content_observer.json a32ac53848862837f3044ff9c81ed62c1134fe4f data/create/recipes/crafting/logistics/powered_latch.json 660eb73bcc66c1528cbd4d4204ad6b771f4bd721 data/create/recipes/crafting/logistics/powered_toggle_latch.json 74b8a38d252cce564cc63db2ade41ed2d656d025 data/create/recipes/crafting/logistics/pulse_repeater.json diff --git a/src/generated/resources/assets/create/blockstates/belt_observer.json b/src/generated/resources/assets/create/blockstates/belt_observer.json deleted file mode 100644 index 218931245..000000000 --- a/src/generated/resources/assets/create/blockstates/belt_observer.json +++ /dev/null @@ -1,244 +0,0 @@ -{ - "variants": { - "belt=false,facing=north,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect", - "y": 180 - }, - "belt=true,facing=north,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect_belt", - "y": 180 - }, - "belt=false,facing=south,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect" - }, - "belt=true,facing=south,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect_belt" - }, - "belt=false,facing=west,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect", - "y": 90 - }, - "belt=true,facing=west,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect_belt", - "y": 90 - }, - "belt=false,facing=east,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect", - "y": 270 - }, - "belt=true,facing=east,mode=detect,powered=false": { - "model": "create:block/belt_observer/detect_belt", - "y": 270 - }, - "belt=false,facing=north,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse", - "y": 180 - }, - "belt=true,facing=north,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse_belt", - "y": 180 - }, - "belt=false,facing=south,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse" - }, - "belt=true,facing=south,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse_belt" - }, - "belt=false,facing=west,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse", - "y": 90 - }, - "belt=true,facing=west,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse_belt", - "y": 90 - }, - "belt=false,facing=east,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse", - "y": 270 - }, - "belt=true,facing=east,mode=pulse,powered=false": { - "model": "create:block/belt_observer/pulse_belt", - "y": 270 - }, - "belt=false,facing=north,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject", - "y": 180 - }, - "belt=true,facing=north,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject_belt", - "y": 180 - }, - "belt=false,facing=south,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject" - }, - "belt=true,facing=south,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject_belt" - }, - "belt=false,facing=west,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject", - "y": 90 - }, - "belt=true,facing=west,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject_belt", - "y": 90 - }, - "belt=false,facing=east,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject", - "y": 270 - }, - "belt=true,facing=east,mode=eject,powered=false": { - "model": "create:block/belt_observer/eject_belt", - "y": 270 - }, - "belt=false,facing=north,mode=split,powered=false": { - "model": "create:block/belt_observer/split", - "y": 180 - }, - "belt=true,facing=north,mode=split,powered=false": { - "model": "create:block/belt_observer/split_belt", - "y": 180 - }, - "belt=false,facing=south,mode=split,powered=false": { - "model": "create:block/belt_observer/split" - }, - "belt=true,facing=south,mode=split,powered=false": { - "model": "create:block/belt_observer/split_belt" - }, - "belt=false,facing=west,mode=split,powered=false": { - "model": "create:block/belt_observer/split", - "y": 90 - }, - "belt=true,facing=west,mode=split,powered=false": { - "model": "create:block/belt_observer/split_belt", - "y": 90 - }, - "belt=false,facing=east,mode=split,powered=false": { - "model": "create:block/belt_observer/split", - "y": 270 - }, - "belt=true,facing=east,mode=split,powered=false": { - "model": "create:block/belt_observer/split_belt", - "y": 270 - }, - "belt=false,facing=north,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_powered", - "y": 180 - }, - "belt=true,facing=north,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_belt_powered", - "y": 180 - }, - "belt=false,facing=south,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_powered" - }, - "belt=true,facing=south,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_belt_powered" - }, - "belt=false,facing=west,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_powered", - "y": 90 - }, - "belt=true,facing=west,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_belt_powered", - "y": 90 - }, - "belt=false,facing=east,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_powered", - "y": 270 - }, - "belt=true,facing=east,mode=detect,powered=true": { - "model": "create:block/belt_observer/detect_belt_powered", - "y": 270 - }, - "belt=false,facing=north,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_powered", - "y": 180 - }, - "belt=true,facing=north,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_belt_powered", - "y": 180 - }, - "belt=false,facing=south,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_powered" - }, - "belt=true,facing=south,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_belt_powered" - }, - "belt=false,facing=west,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_powered", - "y": 90 - }, - "belt=true,facing=west,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_belt_powered", - "y": 90 - }, - "belt=false,facing=east,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_powered", - "y": 270 - }, - "belt=true,facing=east,mode=pulse,powered=true": { - "model": "create:block/belt_observer/pulse_belt_powered", - "y": 270 - }, - "belt=false,facing=north,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_powered", - "y": 180 - }, - "belt=true,facing=north,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_belt_powered", - "y": 180 - }, - "belt=false,facing=south,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_powered" - }, - "belt=true,facing=south,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_belt_powered" - }, - "belt=false,facing=west,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_powered", - "y": 90 - }, - "belt=true,facing=west,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_belt_powered", - "y": 90 - }, - "belt=false,facing=east,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_powered", - "y": 270 - }, - "belt=true,facing=east,mode=eject,powered=true": { - "model": "create:block/belt_observer/eject_belt_powered", - "y": 270 - }, - "belt=false,facing=north,mode=split,powered=true": { - "model": "create:block/belt_observer/split_powered", - "y": 180 - }, - "belt=true,facing=north,mode=split,powered=true": { - "model": "create:block/belt_observer/split_belt_powered", - "y": 180 - }, - "belt=false,facing=south,mode=split,powered=true": { - "model": "create:block/belt_observer/split_powered" - }, - "belt=true,facing=south,mode=split,powered=true": { - "model": "create:block/belt_observer/split_belt_powered" - }, - "belt=false,facing=west,mode=split,powered=true": { - "model": "create:block/belt_observer/split_powered", - "y": 90 - }, - "belt=true,facing=west,mode=split,powered=true": { - "model": "create:block/belt_observer/split_belt_powered", - "y": 90 - }, - "belt=false,facing=east,mode=split,powered=true": { - "model": "create:block/belt_observer/split_powered", - "y": 270 - }, - "belt=true,facing=east,mode=split,powered=true": { - "model": "create:block/belt_observer/split_belt_powered", - "y": 270 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/content_observer.json b/src/generated/resources/assets/create/blockstates/content_observer.json new file mode 100644 index 000000000..e66a1472c --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/content_observer.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,powered=false": { + "model": "create:block/content_observer/block" + }, + "facing=south,powered=false": { + "model": "create:block/content_observer/block", + "y": 180 + }, + "facing=west,powered=false": { + "model": "create:block/content_observer/block", + "y": 270 + }, + "facing=east,powered=false": { + "model": "create:block/content_observer/block", + "y": 90 + }, + "facing=north,powered=true": { + "model": "create:block/content_observer/block_powered" + }, + "facing=south,powered=true": { + "model": "create:block/content_observer/block_powered", + "y": 180 + }, + "facing=west,powered=true": { + "model": "create:block/content_observer/block_powered", + "y": 270 + }, + "facing=east,powered=true": { + "model": "create:block/content_observer/block_powered", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 164f096ac..720fa1360 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -21,7 +21,6 @@ "block.create.andesite_tunnel": "\u05DF\u01DDuun\u27D8 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.basin": "u\u0131s\u0250\u15FA", "block.create.belt": "\u0287\u05DF\u01DD\u15FA", - "block.create.belt_observer": "\u0279\u01DD\u028C\u0279\u01DDsqO \u0287\u05DF\u01DD\u15FA", "block.create.birch_window": "\u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", "block.create.birch_window_pane": "\u01DDu\u0250\u0500 \u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", "block.create.black_seat": "\u0287\u0250\u01DDS \u029E\u0254\u0250\u05DF\u15FA", @@ -44,6 +43,7 @@ "block.create.clockwork_bearing": "bu\u0131\u0279\u0250\u01DD\u15FA \u029E\u0279o\u028D\u029E\u0254o\u05DF\u0186", "block.create.clutch": "\u0265\u0254\u0287n\u05DF\u0186", "block.create.cogwheel": "\u05DF\u01DD\u01DD\u0265\u028Dbo\u0186", + "block.create.content_observer": "\u0279\u01DD\u028C\u0279\u01DDsqO \u0287u\u01DD\u0287uo\u0186", "block.create.copper_block": "\u029E\u0254o\u05DF\u15FA \u0279\u01DDddo\u0186", "block.create.copper_casing": "bu\u0131s\u0250\u0186 \u0279\u01DDddo\u0186", "block.create.copper_ore": "\u01DD\u0279O \u0279\u01DDddo\u0186", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 9475d69b2..7e02b0a84 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -24,7 +24,6 @@ "block.create.andesite_tunnel": "Andesite Tunnel", "block.create.basin": "Basin", "block.create.belt": "Belt", - "block.create.belt_observer": "Belt Observer", "block.create.birch_window": "Birch Window", "block.create.birch_window_pane": "Birch Window Pane", "block.create.black_seat": "Black Seat", @@ -47,6 +46,7 @@ "block.create.clockwork_bearing": "Clockwork Bearing", "block.create.clutch": "Clutch", "block.create.cogwheel": "Cogwheel", + "block.create.content_observer": "Content Observer", "block.create.copper_block": "Copper Block", "block.create.copper_casing": "Copper Casing", "block.create.copper_ore": "Copper Ore", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 2f46228b6..09c9e0774 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 804", + "_": "Missing Localizations: 805", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "UNLOCALIZED: Basin", "block.create.belt": "Mechanischer Riemen", - "block.create.belt_observer": "Fließband-Beobachter", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Kupplung", "block.create.cogwheel": "Zahnrad", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "UNLOCALIZED: Copper Block", "block.create.copper_casing": "UNLOCALIZED: Copper Casing", "block.create.copper_ore": "UNLOCALIZED: Copper Ore", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 820163344..0dbeb86da 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 428", + "_": "Missing Localizations: 429", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "Bassin", "block.create.belt": "Tapis roulant", - "block.create.belt_observer": "Observateur d'entité", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "Roulement mécanique horloger", "block.create.clutch": "Embrayage", "block.create.cogwheel": "Roue dentée", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "Bloc de cuivre", "block.create.copper_casing": "Boîtier en cuivre", "block.create.copper_ore": "Minerai de cuivre", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 299ac1c3a..2951abe01 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 412", + "_": "Missing Localizations: 413", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "Bacinella", "block.create.belt": "Nastro Meccanico", - "block.create.belt_observer": "Osservatore a Cinghia", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "Supporto del Orologio", "block.create.clutch": "Frizione", "block.create.cogwheel": "Ruota Dentata", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "Blocco di Rame", "block.create.copper_casing": "Involucro di Rame", "block.create.copper_ore": "Rame Grezzo", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 4c339d77d..0da7ed792 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 407", + "_": "Missing Localizations: 408", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "鉢", "block.create.belt": "メカニカルベルト", - "block.create.belt_observer": "ベルトオブザーバー", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "時計仕掛けのベアリング", "block.create.clutch": "クラッチ", "block.create.cogwheel": "歯車", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "銅ブロック", "block.create.copper_casing": "銅ケーシング", "block.create.copper_ore": "銅鉱石", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index fc1468e89..d0b4cc6a4 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 412", + "_": "Missing Localizations: 413", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "대야", "block.create.belt": "컨베이어 벨트", - "block.create.belt_observer": "벨트 감지기", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "시계 베어링", "block.create.clutch": "클러치", "block.create.cogwheel": "톱나버퀴", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "구리 블럭", "block.create.copper_casing": "구리 케이스", "block.create.copper_ore": "구리 광석", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index a120cfccd..d41a674fe 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 742", + "_": "Missing Localizations: 743", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "Bekken", "block.create.belt": "Mechanische Transportband", - "block.create.belt_observer": "Transportband Observeerder", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Koppeling", "block.create.cogwheel": "Tandwiel", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "UNLOCALIZED: Copper Block", "block.create.copper_casing": "UNLOCALIZED: Copper Casing", "block.create.copper_ore": "UNLOCALIZED: Copper Ore", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index f1753a13b..85dbbd4b5 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 811", + "_": "Missing Localizations: 812", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "UNLOCALIZED: Basin", "block.create.belt": "Esteira Mecânica", - "block.create.belt_observer": "Observador de Esteira", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Embreagem", "block.create.cogwheel": "Roda Dentada", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "UNLOCALIZED: Copper Block", "block.create.copper_casing": "UNLOCALIZED: Copper Casing", "block.create.copper_ore": "UNLOCALIZED: Copper Ore", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 4ea84c952..a1b2f184b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 805", + "_": "Missing Localizations: 806", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "UNLOCALIZED: Basin", "block.create.belt": "Механическая лента", - "block.create.belt_observer": "Ленточный сканер", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing", "block.create.clutch": "Переключаемая муфта", "block.create.cogwheel": "Шестерня", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "UNLOCALIZED: Copper Block", "block.create.copper_casing": "UNLOCALIZED: Copper Casing", "block.create.copper_ore": "UNLOCALIZED: Copper Ore", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index de1d2d829..a71cef0e7 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 92", + "_": "Missing Localizations: 93", "_": "->------------------------] Game Elements [------------------------<-", @@ -25,7 +25,6 @@ "block.create.andesite_tunnel": "UNLOCALIZED: Andesite Tunnel", "block.create.basin": "工作盆", "block.create.belt": "传送带", - "block.create.belt_observer": "传送带侦测器", "block.create.birch_window": "白桦窗户", "block.create.birch_window_pane": "白桦窗户板", "block.create.black_seat": "UNLOCALIZED: Black Seat", @@ -48,6 +47,7 @@ "block.create.clockwork_bearing": "时钟轴承", "block.create.clutch": "离合器", "block.create.cogwheel": "齿轮", + "block.create.content_observer": "UNLOCALIZED: Content Observer", "block.create.copper_block": "铜块", "block.create.copper_casing": "铜机壳", "block.create.copper_ore": "铜矿石", diff --git a/src/generated/resources/assets/create/models/block/belt_observer/detect.json b/src/generated/resources/assets/create/models/block/belt_observer/detect.json deleted file mode 100644 index 2d895145a..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/detect.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base", - "textures": { - "texture": "create:block/belt_observer_detect" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/detect_belt.json b/src/generated/resources/assets/create/models/block/belt_observer/detect_belt.json deleted file mode 100644 index 457f5d21d..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/detect_belt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt", - "textures": { - "texture": "create:block/belt_observer_detect" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/detect_belt_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/detect_belt_powered.json deleted file mode 100644 index a0b2b28d3..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/detect_belt_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt_powered", - "textures": { - "texture": "create:block/belt_observer_detect_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/detect_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/detect_powered.json deleted file mode 100644 index 5e47b062d..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/detect_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_powered", - "textures": { - "texture": "create:block/belt_observer_detect_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/eject.json b/src/generated/resources/assets/create/models/block/belt_observer/eject.json deleted file mode 100644 index b3ca66e24..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/eject.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base", - "textures": { - "texture": "create:block/belt_observer_eject" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/eject_belt.json b/src/generated/resources/assets/create/models/block/belt_observer/eject_belt.json deleted file mode 100644 index a9f7029e7..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/eject_belt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt", - "textures": { - "texture": "create:block/belt_observer_eject" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/eject_belt_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/eject_belt_powered.json deleted file mode 100644 index 77cc7bee9..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/eject_belt_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt_powered", - "textures": { - "texture": "create:block/belt_observer_eject_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/eject_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/eject_powered.json deleted file mode 100644 index ba74df7ba..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/eject_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_powered", - "textures": { - "texture": "create:block/belt_observer_eject_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/pulse.json b/src/generated/resources/assets/create/models/block/belt_observer/pulse.json deleted file mode 100644 index 96053ebdd..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/pulse.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base", - "textures": { - "texture": "create:block/belt_observer_pulse" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/pulse_belt.json b/src/generated/resources/assets/create/models/block/belt_observer/pulse_belt.json deleted file mode 100644 index 17c00b4d2..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/pulse_belt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt", - "textures": { - "texture": "create:block/belt_observer_pulse" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/pulse_belt_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/pulse_belt_powered.json deleted file mode 100644 index 5b36ec7ed..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/pulse_belt_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt_powered", - "textures": { - "texture": "create:block/belt_observer_pulse_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/pulse_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/pulse_powered.json deleted file mode 100644 index 316f2a16f..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/pulse_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_powered", - "textures": { - "texture": "create:block/belt_observer_pulse_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/split.json b/src/generated/resources/assets/create/models/block/belt_observer/split.json deleted file mode 100644 index 2c36d0dce..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/split.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base", - "textures": { - "texture": "create:block/belt_observer_split" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/split_belt.json b/src/generated/resources/assets/create/models/block/belt_observer/split_belt.json deleted file mode 100644 index d6e303816..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/split_belt.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt", - "textures": { - "texture": "create:block/belt_observer_split" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/split_belt_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/split_belt_powered.json deleted file mode 100644 index 1ae9418ca..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/split_belt_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt_powered", - "textures": { - "texture": "create:block/belt_observer_split_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/belt_observer/split_powered.json b/src/generated/resources/assets/create/models/block/belt_observer/split_powered.json deleted file mode 100644 index 3b2229601..000000000 --- a/src/generated/resources/assets/create/models/block/belt_observer/split_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_powered", - "textures": { - "texture": "create:block/belt_observer_split_powered" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/belt_observer.json b/src/generated/resources/assets/create/models/item/belt_observer.json deleted file mode 100644 index 84c140675..000000000 --- a/src/generated/resources/assets/create/models/item/belt_observer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/belt_observer/item" -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/content_observer.json b/src/generated/resources/assets/create/models/item/content_observer.json new file mode 100644 index 000000000..01c7ba5ef --- /dev/null +++ b/src/generated/resources/assets/create/models/item/content_observer.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/content_observer/block" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/logistics/belt_observer.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/logistics/content_observer.json similarity index 81% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/logistics/belt_observer.json rename to src/generated/resources/data/create/advancements/recipes/create.base/crafting/logistics/content_observer.json index 9e9f647d0..84dde5a75 100644 --- a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/logistics/belt_observer.json +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/logistics/content_observer.json @@ -2,7 +2,7 @@ "parent": "minecraft:recipes/root", "rewards": { "recipes": [ - "create:crafting/logistics/belt_observer" + "create:crafting/logistics/content_observer" ] }, "criteria": { @@ -19,7 +19,7 @@ "has_the_recipe": { "trigger": "minecraft:recipe_unlocked", "conditions": { - "recipe": "create:crafting/logistics/belt_observer" + "recipe": "create:crafting/logistics/content_observer" } } }, diff --git a/src/generated/resources/data/create/loot_tables/blocks/belt_observer.json b/src/generated/resources/data/create/loot_tables/blocks/content_observer.json similarity index 85% rename from src/generated/resources/data/create/loot_tables/blocks/belt_observer.json rename to src/generated/resources/data/create/loot_tables/blocks/content_observer.json index 3919e58e4..09c12c01b 100644 --- a/src/generated/resources/data/create/loot_tables/blocks/belt_observer.json +++ b/src/generated/resources/data/create/loot_tables/blocks/content_observer.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "create:belt_observer" + "name": "create:content_observer" } ], "conditions": [ diff --git a/src/generated/resources/data/create/recipes/crafting/logistics/belt_observer.json b/src/generated/resources/data/create/recipes/crafting/logistics/content_observer.json similarity index 89% rename from src/generated/resources/data/create/recipes/crafting/logistics/belt_observer.json rename to src/generated/resources/data/create/recipes/crafting/logistics/content_observer.json index c802d8aaa..6bc6b13f4 100644 --- a/src/generated/resources/data/create/recipes/crafting/logistics/belt_observer.json +++ b/src/generated/resources/data/create/recipes/crafting/logistics/content_observer.json @@ -19,6 +19,6 @@ } }, "result": { - "item": "create:belt_observer" + "item": "create:content_observer" } } \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index cab3ae747..fba5eac5b 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -91,7 +91,6 @@ import com.simibubi.create.content.contraptions.relays.encased.GearshiftBlock; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock; import com.simibubi.create.content.contraptions.relays.gauge.GaugeGenerator; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxBlock; -import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelCTBehaviour; @@ -120,6 +119,7 @@ import com.simibubi.create.content.logistics.block.mechanicalArm.ArmBlock; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmItem; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverBlock; import com.simibubi.create.content.logistics.block.redstone.ContactMovementBehaviour; +import com.simibubi.create.content.logistics.block.redstone.ContentObserverBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeGenerator; import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock; @@ -140,9 +140,6 @@ import com.simibubi.create.foundation.utility.DyeHelper; import com.simibubi.create.foundation.worldgen.OxidizingBlock; import com.tterrag.registrate.util.entry.BlockEntry; -import net.minecraft.advancements.criterion.InventoryChangeTrigger; -import net.minecraft.advancements.criterion.ItemPredicate; -import net.minecraft.advancements.criterion.MinMaxBounds; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.block.SoundType; @@ -712,24 +709,14 @@ public class AllBlocks { .patternLine("-") .key('#', DyeHelper.getWoolOfDye(colour)) .key('-', ItemTags.WOODEN_SLABS) - .addCriterion("has_wool", - new InventoryChangeTrigger.Instance(MinMaxBounds.IntBound.UNBOUNDED, - MinMaxBounds.IntBound.UNBOUNDED, MinMaxBounds.IntBound.UNBOUNDED, - new ItemPredicate[] { ItemPredicate.Builder.create() - .tag(ItemTags.WOOL) - .build() })) + .addCriterion("has_wool", p.hasItem(ItemTags.WOOL)) .build(p, Create.asResource("crafting/kinetics/" + c.getName())); ShapedRecipeBuilder.shapedRecipe(c.get()) .patternLine("#") .patternLine("-") .key('#', DyeHelper.getTagOfDye(colour)) .key('-', AllItemTags.SEATS.tag) - .addCriterion("has_seat", - new InventoryChangeTrigger.Instance(MinMaxBounds.IntBound.UNBOUNDED, - MinMaxBounds.IntBound.UNBOUNDED, MinMaxBounds.IntBound.UNBOUNDED, - new ItemPredicate[] { ItemPredicate.Builder.create() - .tag(AllItemTags.SEATS.tag) - .build() })) + .addCriterion("has_seat", p.hasItem(AllItemTags.SEATS.tag)) .build(p, Create.asResource("crafting/kinetics/" + c.getName() + "_from_other_seat")); }) .tag(AllBlockTags.SEATS.tag) @@ -881,12 +868,12 @@ public class AllBlocks { .transform(customItemModel("_", "block")) .register(); - public static final BlockEntry BELT_OBSERVER = - REGISTRATE.block("belt_observer", BeltObserverBlock::new) + public static final BlockEntry CONTENT_OBSERVER = + REGISTRATE.block("content_observer", ContentObserverBlock::new) .initialProperties(SharedProperties::stone) - .blockstate(BlockStateGen.beltObserver()) + .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p))) .item() - .transform(customItemModel()) + .transform(customItemModel("_", "block")) .register(); public static final BlockEntry STOCKPILE_SWITCH = diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 7b1739db2..096b9bb76 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -52,7 +52,11 @@ public class AllShapes { .forHorizontalAxis(), STOCKPILE_SWITCH = shape(0, 0, 0, 16, 2, 16).add(1, 0, 1, 15, 16, 15) .add(0, 14, 0, 16, 16, 16) - .add(3, 3, -1, 13, 13, 2) + .add(3, 3, -2, 13, 13, 2) + .forHorizontal(NORTH), + CONTENT_OBSERVER = shape(0, 0, 0, 16, 6, 16).add(1, 0, 1, 15, 16, 15) + .add(0, 14, 0, 16, 16, 16) + .add(3, 3, -2, 13, 13, 2) .forHorizontal(NORTH), NIXIE_TUBE = shape(0, 0, 0, 16, 4, 16).add(9, 0, 5, 15, 15, 11) .add(1, 0, 5, 7, 15, 11) @@ -68,13 +72,9 @@ public class AllShapes { .add(2, 6, 2, 14, 10, 14) .add(0, 10, 0, 16, 13, 16) .forDirectional(UP), - BELT_FUNNEL_RETRACTED = - shape(2, -5, 14, 12, 14, 18) - .add(0, -5, 8, 16, 16, 14) + BELT_FUNNEL_RETRACTED = shape(2, -5, 14, 12, 14, 18).add(0, -5, 8, 16, 16, 14) .forHorizontal(NORTH), - BELT_FUNNEL_EXTENDED = - shape(2, -4, 14, 14, 14, 18) - .add(3, -4, 10, 13, 13, 14) + BELT_FUNNEL_EXTENDED = shape(2, -4, 14, 14, 14, 18).add(3, -4, 10, 13, 13, 14) .add(2, -4, 6, 14, 14, 10) .add(0, -5, 0, 16, 16, 6) .forHorizontal(NORTH), diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 70e537b4a..2a1e145f2 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -73,8 +73,6 @@ import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEnti import com.simibubi.create.content.contraptions.relays.gearbox.GearboxRenderer; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxTileEntity; import com.simibubi.create.content.contraptions.relays.gearbox.GearshiftTileEntity; -import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverRenderer; -import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverTileEntity; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelRenderer; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelTileEntity; import com.simibubi.create.content.logistics.block.belts.tunnel.BrassTunnelTileEntity; @@ -93,6 +91,7 @@ import com.simibubi.create.content.logistics.block.mechanicalArm.ArmRenderer; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverRenderer; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity; +import com.simibubi.create.content.logistics.block.redstone.ContentObserverTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity; @@ -427,7 +426,7 @@ public class AllTileEntities { public static final TileEntityEntry STOCKPILE_SWITCH = Create.registrate() .tileEntity("stockpile_switch", StockpileSwitchTileEntity::new) .validBlocks(AllBlocks.STOCKPILE_SWITCH) - //.renderer(() -> renderer) + .renderer(() -> SmartTileEntityRenderer::new) .register(); public static final TileEntityEntry ADJUSTABLE_CRATE = Create.registrate() @@ -454,10 +453,10 @@ public class AllTileEntities { .renderer(() -> FunnelRenderer::new) .register(); - public static final TileEntityEntry BELT_OBSERVER = Create.registrate() - .tileEntity("belt_observer", BeltObserverTileEntity::new) - .validBlocks(AllBlocks.BELT_OBSERVER) - .renderer(() -> BeltObserverRenderer::new) + public static final TileEntityEntry CONTENT_OBSERVER = Create.registrate() + .tileEntity("content_observer", ContentObserverTileEntity::new) + .validBlocks(AllBlocks.CONTENT_OBSERVER) + .renderer(() -> SmartTileEntityRenderer::new) .register(); public static final TileEntityEntry ADJUSTABLE_REPEATER = Create.registrate() diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatBlock.java index 584df561a..f0211af6b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatBlock.java @@ -2,14 +2,19 @@ package com.simibubi.create.content.contraptions.components.actors; import java.util.List; +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + import com.simibubi.create.AllShapes; +import mcp.MethodsReturnNonnullByDefault; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.MobEntity; +import net.minecraft.entity.item.minecart.AbstractMinecartEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; @@ -25,11 +30,6 @@ import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; - -import javax.annotation.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; -import mcp.MethodsReturnNonnullByDefault; - @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault public class SeatBlock extends Block { @@ -56,7 +56,7 @@ public class SeatBlock extends Block { @Override public void onLanded(IBlockReader reader, Entity entity) { BlockPos pos = entity.getPosition(); - if (entity instanceof PlayerEntity || !(entity instanceof LivingEntity) || isSeatOccupied(entity.world, pos)) { + if (!canBePickedUp(entity) || isSeatOccupied(entity.world, pos)) { Blocks.PINK_BED.onLanded(reader, entity); return; } @@ -67,7 +67,8 @@ public class SeatBlock extends Block { } @Override - public PathNodeType getAiPathNodeType(BlockState state, IBlockReader world, BlockPos pos, @Nullable MobEntity entity) { + public PathNodeType getAiPathNodeType(BlockState state, IBlockReader world, BlockPos pos, + @Nullable MobEntity entity) { return PathNodeType.RAIL; } @@ -76,7 +77,7 @@ public class SeatBlock extends Block { ISelectionContext p_220053_4_) { return AllShapes.SEAT; } - + @Override public VoxelShape getCollisionShape(BlockState p_220071_1_, IBlockReader p_220071_2_, BlockPos p_220071_3_, ISelectionContext p_220071_4_) { @@ -113,6 +114,11 @@ public class SeatBlock extends Block { .isEmpty(); } + public static boolean canBePickedUp(Entity passenger) { + return !(passenger instanceof PlayerEntity) + && (passenger instanceof LivingEntity || passenger instanceof AbstractMinecartEntity); + } + public static void sitDown(World world, BlockPos pos, Entity entity) { if (world.isRemote) return; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java index e400628cd..00ec2db8f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/SeatMovementBehaviour.java @@ -12,8 +12,6 @@ import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; import net.minecraft.block.SlabBlock; import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.state.properties.SlabType; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; @@ -73,12 +71,10 @@ public class SeatMovementBehaviour extends MovementBehaviour { if (solid) return; - List entitiesWithinAABB = context.world.getEntitiesWithinAABB(LivingEntity.class, - new AxisAlignedBB(pos).shrink(1 / 16f), e -> !(e instanceof PlayerEntity)); - if (entitiesWithinAABB.isEmpty()) - return; - LivingEntity passenger = entitiesWithinAABB.get(0); - contraptionEntity.addSittingPassenger(passenger, index); + List nearbyEntities = context.world.getEntitiesWithinAABB(Entity.class, + new AxisAlignedBB(pos).shrink(1 / 16f), SeatBlock::canBePickedUp); + if (!nearbyEntities.isEmpty()) + contraptionEntity.addSittingPassenger(nearbyEntities.get(0), index); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index db898b03c..586082bdb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -159,7 +159,7 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE, IWrenchable { - - public static final BooleanProperty POWERED = BlockStateProperties.POWERED; - public static final BooleanProperty BELT = BooleanProperty.create("belt"); - public static final EnumProperty MODE = EnumProperty.create("mode", Mode.class); - - public BeltObserverBlock(Properties properties) { - super(properties); - setDefaultState(getDefaultState().with(POWERED, false).with(BELT, false)); - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.BELT_OBSERVER.create(); - } - - @Override - public PushReaction getPushReaction(BlockState state) { - return PushReaction.BLOCK; - } - - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - - @Override - public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn, - BlockPos currentPos, BlockPos facingPos) { - if (facing == stateIn.get(HORIZONTAL_FACING)) - stateIn = stateIn.with(BELT, shouldHaveExtension(stateIn, worldIn, currentPos)); - return stateIn; - } - - @Override - protected void fillStateContainer(Builder builder) { - builder.add(POWERED, HORIZONTAL_FACING, BELT, MODE); - super.fillStateContainer(builder); - } - - private boolean shouldHaveExtension(BlockState state, IWorld world, BlockPos pos) { - Direction direction = state.get(HORIZONTAL_FACING); - BlockState blockState = world.getBlockState(pos.offset(direction)); - - if (!AllBlocks.BELT.has(blockState)) - return false; - if (blockState.get(BeltBlock.SLOPE) != BeltSlope.HORIZONTAL) - return false; - if (blockState.get(BeltBlock.PART) != BeltPart.MIDDLE) - return false; - if (blockState.get(BeltBlock.HORIZONTAL_FACING).getAxis() == direction.getAxis()) - return false; - - return true; - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - BlockState state = getDefaultState(); - - Direction preferredFacing = null; - for (Direction face : Direction.values()) { - if (face.getAxis().isVertical()) - continue; - - BlockState blockState = context.getWorld().getBlockState(context.getPos().offset(face)); - if (AllBlocks.BELT.has(blockState) - && blockState.get(BlockStateProperties.HORIZONTAL_FACING).getAxis() != face.getAxis() - && blockState.get(BeltBlock.SLOPE) == BeltSlope.HORIZONTAL) - if (preferredFacing == null) - preferredFacing = face; - else { - preferredFacing = null; - break; - } - } - - if (preferredFacing != null) { - state = state.with(HORIZONTAL_FACING, preferredFacing); - } else if (context.getFace().getAxis().isHorizontal()) { - state = state.with(HORIZONTAL_FACING, context.getFace()); - } else { - state = state.with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing()); - } - - state = state.with(BELT, shouldHaveExtension(state, context.getWorld(), context.getPos())); - - return state; - } - - @Override - public boolean canProvidePower(BlockState state) { - return state.get(POWERED); - } - - @Override - public int getWeakPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { - return canProvidePower(blockState) ? 15 : 0; - } - - @Override - public boolean canConnectRedstone(BlockState state, IBlockReader world, BlockPos pos, Direction side) { - return side != state.get(HORIZONTAL_FACING).getOpposite(); - } - - @Override - public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.hasTileEntity() && state.getBlock() != newState.getBlock()) { - TileEntityBehaviour.destroy(worldIn, pos, FilteringBehaviour.TYPE); - worldIn.removeTileEntity(pos); - } - } - - @Override - public ActionResultType onWrenched(BlockState state, ItemUseContext context) { - World world = context.getWorld(); - if (!world.isRemote) { - world.setBlockState(context.getPos(), state.with(POWERED, false).cycle(MODE), 3); - world.notifyNeighborsOfStateChange(context.getPos(), this); - } - return ActionResultType.SUCCESS; - } - - public enum Mode implements IStringSerializable { - DETECT, PULSE, EJECT, SPLIT; - - @Override - public String getName() { - return Lang.asId(name()); - } - } - - @Override - public Class getTileEntityClass() { - return BeltObserverTileEntity.class; - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverRenderer.java deleted file mode 100644 index 0461fd6cd..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverRenderer.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.simibubi.create.content.logistics.block.belts.observer; - -import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRenderer; -import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; - -import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.state.properties.BlockStateProperties; - -public class BeltObserverRenderer extends SafeTileEntityRenderer { - - public BeltObserverRenderer(TileEntityRendererDispatcher dispatcher) { - super(dispatcher); - } - - @Override - protected void renderSafe(BeltObserverTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, - int light, int overlay) { - light = WorldRenderer.getLightmapCoordinates(te.getWorld(), - te.getPos().up().offset(te.getBlockState().get(BlockStateProperties.HORIZONTAL_FACING))); - - FilteringRenderer.renderOnTileEntity(te, partialTicks, ms, buffer, light, overlay); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverTileEntity.java deleted file mode 100644 index 969fc6ab2..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverTileEntity.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.simibubi.create.content.logistics.block.belts.observer; - -import java.util.List; - -import com.simibubi.create.content.contraptions.relays.belt.BeltHelper; -import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; -import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverBlock.Mode; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; - -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -public class BeltObserverTileEntity extends SmartTileEntity { - - private FilteringBehaviour filtering; - public int turnOffTicks = 0; - - public BeltObserverTileEntity(TileEntityType type) { - super(type); - setLazyTickRate(20); - } - - @Override - public void addBehaviours(List behaviours) { - filtering = new FilteringBehaviour(this, new BeltObserverFilterSlot()).moveText(new Vec3d(0, 5, 0)); - behaviours.add(filtering); - } - - @Override - public void tick() { - super.tick(); - if (turnOffTicks > 0) { - turnOffTicks--; - if (turnOffTicks == 0) - world.getPendingBlockTicks().scheduleTick(pos, getBlockState().getBlock(), 1); - } - - if (!isActive()) - return; - if (getBlockState().get(BeltObserverBlock.MODE) != Mode.DETECT) - return; - - BlockPos targetPos = pos.offset(getBlockState().get(BeltObserverBlock.HORIZONTAL_FACING)); - - BeltTileEntity beltTE = BeltHelper.getSegmentTE(world, targetPos); - if (beltTE == null) - return; - BeltTileEntity controllerTE = beltTE.getControllerTE(); - if (controllerTE == null) - return; - - controllerTE.getInventory().applyToEachWithin(beltTE.index + .5f, .45f, stack -> { - if (filtering.test(stack.stack) && turnOffTicks != 6) { - world.setBlockState(pos, getBlockState().with(BeltObserverBlock.POWERED, true)); - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); - resetTurnOffCooldown(); - } - return null; - }); - - } - - private boolean isActive() { - return getBlockState().get(BeltObserverBlock.BELT); - } - - public void resetTurnOffCooldown() { - turnOffTicks = 6; - } - - @Override - public void write(CompoundNBT compound, boolean clientPacket) { - compound.putInt("TurnOff", turnOffTicks); - super.write(compound, clientPacket); - } - - @Override - protected void read(CompoundNBT compound, boolean clientPacket) { - turnOffTicks = compound.getInt("TurnOff"); - super.read(compound, clientPacket); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index e7f2987fb..fe71af5cf 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -306,19 +306,19 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor private boolean handleDownwardOutput(boolean simulate) { BlockState blockState = getBlockState(); ChuteTileEntity targetChute = getTargetChute(blockState); + Direction direction = blockState.get(ChuteBlock.FACING); if (targetChute != null) { boolean canInsert = targetChute.item.isEmpty(); if (!simulate && canInsert) { - targetChute.setItem(item, 1); + targetChute.setItem(item, direction == Direction.DOWN ? 1 : .51f); setItem(ItemStack.EMPTY); } return canInsert; } // Diagonal chutes can only insert into other chutes - if (blockState.get(ChuteBlock.FACING) - .getAxis() + if (direction.getAxis() .isHorizontal()) return false; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java index 570eef9bf..b6f949a5a 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BeltFunnelBlock.java @@ -99,7 +99,7 @@ public abstract class BeltFunnelBlock extends HorizontalInteractionFunnelBlock { return true; if (!(stateBelow.getBlock() instanceof BeltBlock)) return false; - if (!BeltBlock.canTransport(stateBelow)) + if (!BeltBlock.canTransportObjects(stateBelow)) return false; return true; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java index 4ad08eea1..a9a41f804 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java @@ -125,6 +125,11 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE< return toInsert; if (simulate) inserter.simulate(); + if (!simulate) { + TileEntity tileEntity = worldIn.getTileEntity(pos); + if (tileEntity instanceof FunnelTileEntity) + ((FunnelTileEntity) tileEntity).onTransfer(toInsert); + } return inserter.insert(toInsert); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java index c606f8bf4..979b10795 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java @@ -108,6 +108,8 @@ public class FunnelTileEntity extends SmartTileEntity { ItemStack stack = autoExtractor.extract(amountToExtract, filter, amountThreshold); if (stack.isEmpty()) return; + + onTransfer(stack); invManipulation.insert(stack); startCooldown(); } @@ -142,6 +144,7 @@ public class FunnelTileEntity extends SmartTileEntity { if (stack.isEmpty()) return; flap(false); + onTransfer(stack); inputBehaviour.handleInsertion(stack, facing, false); startCooldown(); } @@ -160,6 +163,7 @@ public class FunnelTileEntity extends SmartTileEntity { return ignore; flap(true); + onTransfer(toInsert); if (remainder.isEmpty()) return TransportedResult.removeItem(); @@ -216,6 +220,8 @@ public class FunnelTileEntity extends SmartTileEntity { return inserted; if (simulate) invManipulation.simulate(); + if (!simulate) + onTransfer(inserted); return invManipulation.insert(inserted); } @@ -253,5 +259,9 @@ public class FunnelTileEntity extends SmartTileEntity { public double getMaxRenderDistanceSquared() { return hasFlap() ? super.getMaxRenderDistanceSquared() : 64; } + + public void onTransfer(ItemStack stack) { + AllBlocks.CONTENT_OBSERVER.get().onFunnelTransfer(world, pos, stack); + } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java index 0a8b96359..338ee843f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java @@ -11,6 +11,7 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.saw.SawBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; +import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; @@ -346,6 +347,11 @@ public abstract class ArmInteractionPoint { return stack; if (simulate) inserter.simulate(); + if (!simulate) { + TileEntity tileEntity = world.getTileEntity(pos); + if (tileEntity instanceof FunnelTileEntity) + ((FunnelTileEntity) tileEntity).onTransfer(stack); + } return inserter.insert(stack); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java new file mode 100644 index 000000000..689d48caf --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverBlock.java @@ -0,0 +1,156 @@ +package com.simibubi.create.content.logistics.block.redstone; + +import java.util.Random; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllShapes; +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.content.contraptions.wrench.IWrenchable; +import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; +import com.simibubi.create.foundation.block.ITE; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalBlock; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.item.ItemStack; +import net.minecraft.state.BooleanProperty; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.items.CapabilityItemHandler; + +public class ContentObserverBlock extends HorizontalBlock implements ITE, IWrenchable { + + public static final BooleanProperty POWERED = BlockStateProperties.POWERED; + + public ContentObserverBlock(Properties properties) { + super(properties); + setDefaultState(getDefaultState().with(POWERED, false)); + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return AllShapes.CONTENT_OBSERVER.get(state.get(HORIZONTAL_FACING)); + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.CONTENT_OBSERVER.create(); + } + + @Override + public boolean hasTileEntity(BlockState state) { + return true; + } + + @Override + protected void fillStateContainer(Builder builder) { + builder.add(POWERED, HORIZONTAL_FACING); + super.fillStateContainer(builder); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + BlockState state = getDefaultState(); + + Direction preferredFacing = null; + for (Direction face : Iterate.horizontalDirections) { + BlockPos offsetPos = context.getPos() + .offset(face); + World world = context.getWorld(); + boolean canDetect = false; + TileEntity tileEntity = world.getTileEntity(offsetPos); + + if (TileEntityBehaviour.get(tileEntity, TransportedItemStackHandlerBehaviour.TYPE) != null) + canDetect = true; + else if (tileEntity != null && tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + .isPresent()) + canDetect = true; + else if (tileEntity instanceof FunnelTileEntity) + canDetect = true; + + if (canDetect) { + if (preferredFacing != null) { + preferredFacing = null; + break; + } + preferredFacing = face; + } + + } + + if (preferredFacing != null) + return state.with(HORIZONTAL_FACING, preferredFacing); + return state.with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing() + .getOpposite()); + } + + @Override + public boolean canProvidePower(BlockState state) { + return state.get(POWERED); + } + + @Override + public int getWeakPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { + return canProvidePower(blockState) && (side == null || side != blockState.get(HORIZONTAL_FACING) + .getOpposite()) ? 15 : 0; + } + + @Override + public void scheduledTick(BlockState state, ServerWorld worldIn, BlockPos pos, Random random) { + worldIn.setBlockState(pos, state.with(POWERED, false), 2); + worldIn.notifyNeighborsOfStateChange(pos, this); + } + + @Override + public boolean canConnectRedstone(BlockState state, IBlockReader world, BlockPos pos, Direction side) { + return side != state.get(HORIZONTAL_FACING) + .getOpposite(); + } + + @Override + public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + if (state.hasTileEntity() && state.getBlock() != newState.getBlock()) { + TileEntityBehaviour.destroy(worldIn, pos, FilteringBehaviour.TYPE); + worldIn.removeTileEntity(pos); + } + } + + public void onFunnelTransfer(World world, BlockPos funnelPos, ItemStack transferred) { + for (Direction direction : Iterate.horizontalDirections) { + BlockPos detectorPos = funnelPos.offset(direction); + BlockState detectorState = world.getBlockState(detectorPos); + if (!AllBlocks.CONTENT_OBSERVER.has(detectorState)) + continue; + if (detectorState.get(HORIZONTAL_FACING) != direction.getOpposite()) + continue; + withTileEntityDo(world, detectorPos, te -> { + FilteringBehaviour filteringBehaviour = TileEntityBehaviour.get(te, FilteringBehaviour.TYPE); + if (filteringBehaviour == null) + return; + if (!filteringBehaviour.test(transferred)) + return; + te.activate(4); + }); + } + } + + @Override + public Class getTileEntityClass() { + return ContentObserverTileEntity.class; + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java new file mode 100644 index 000000000..83759928b --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/ContentObserverTileEntity.java @@ -0,0 +1,108 @@ +package com.simibubi.create.content.logistics.block.redstone; + +import java.util.List; + +import com.simibubi.create.foundation.tileEntity.SmartTileEntity; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; +import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour.InterfaceProvider; + +import net.minecraft.block.BlockState; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; + +public class ContentObserverTileEntity extends SmartTileEntity { + + private static final int DEFAULT_DELAY = 6; + private FilteringBehaviour filtering; + private InvManipulationBehaviour observedInventory; + public int turnOffTicks = 0; + + public ContentObserverTileEntity(TileEntityType type) { + super(type); + setLazyTickRate(20); + } + + @Override + public void addBehaviours(List behaviours) { + filtering = new FilteringBehaviour(this, new FilteredDetectorFilterSlot()).moveText(new Vec3d(0, 5, 0)); + behaviours.add(filtering); + + observedInventory = new InvManipulationBehaviour(this, InterfaceProvider.towardBlockFacing()).bypassSidedness(); + behaviours.add(observedInventory); + } + + @Override + public void tick() { + super.tick(); + BlockState state = getBlockState(); + if (turnOffTicks > 0) { + turnOffTicks--; + if (turnOffTicks == 0) + world.getPendingBlockTicks() + .scheduleTick(pos, state.getBlock(), 1); + } + + if (!isActive()) + return; + + Direction facing = state.get(ContentObserverBlock.HORIZONTAL_FACING); + BlockPos targetPos = pos.offset(facing); + + TransportedItemStackHandlerBehaviour behaviour = + TileEntityBehaviour.get(world, targetPos, TransportedItemStackHandlerBehaviour.TYPE); + if (behaviour != null) { + behaviour.handleCenteredProcessingOnAllItems(.45f, stack -> { + if (!filtering.test(stack.stack) || turnOffTicks == 6) + return TransportedResult.doNothing(); + + activate(); + return TransportedResult.doNothing(); + }); + return; + } + + if (!observedInventory.simulate() + .extract() + .isEmpty()) { + activate(); + return; + } + } + + public void activate() { + activate(DEFAULT_DELAY); + } + + public void activate(int ticks) { + BlockState state = getBlockState(); + turnOffTicks = ticks; + if (state.get(ContentObserverBlock.POWERED)) + return; + world.setBlockState(pos, state.with(ContentObserverBlock.POWERED, true)); + world.notifyNeighborsOfStateChange(pos, state.getBlock()); + } + + private boolean isActive() { + return true; + } + + @Override + public void write(CompoundNBT compound, boolean clientPacket) { + compound.putInt("TurnOff", turnOffTicks); + super.write(compound, clientPacket); + } + + @Override + protected void read(CompoundNBT compound, boolean clientPacket) { + turnOffTicks = compound.getInt("TurnOff"); + super.read(compound, clientPacket); + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverFilterSlot.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java similarity index 80% rename from src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverFilterSlot.java rename to src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java index 01ee5b54c..461c286f8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/observer/BeltObserverFilterSlot.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/FilteredDetectorFilterSlot.java @@ -1,4 +1,4 @@ -package com.simibubi.create.content.logistics.block.belts.observer; +package com.simibubi.create.content.logistics.block.redstone; import com.mojang.blaze3d.matrix.MatrixStack; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; @@ -10,9 +10,9 @@ import net.minecraft.block.BlockState; import net.minecraft.block.HorizontalBlock; import net.minecraft.util.math.Vec3d; -public class BeltObserverFilterSlot extends ValueBoxTransform { +public class FilteredDetectorFilterSlot extends ValueBoxTransform { - Vec3d position = VecHelper.voxelSpace(8f, 14.5f, 16f); + Vec3d position = VecHelper.voxelSpace(8f, 15.5f, 11f); @Override protected Vec3d getLocalOffset(BlockState state) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchTileEntity.java index af7e59e8d..863070eb1 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/StockpileSwitchTileEntity.java @@ -4,17 +4,15 @@ import java.util.List; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour.InterfaceProvider; -import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraft.util.math.Vec3d; import net.minecraftforge.items.IItemHandler; public class StockpileSwitchTileEntity extends SmartTileEntity { @@ -23,7 +21,9 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { public float offWhenBelow; public float currentLevel; public boolean powered; - private LazyOptional observedInventory; + + private FilteringBehaviour filtering; + private InvManipulationBehaviour observedInventory; public StockpileSwitchTileEntity(TileEntityType typeIn) { super(typeIn); @@ -31,7 +31,6 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { offWhenBelow = .25f; currentLevel = -1; powered = false; - observedInventory = LazyOptional.empty(); setLazyTickRate(10); } @@ -41,7 +40,6 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { offWhenBelow = compound.getFloat("OffBelow"); currentLevel = compound.getFloat("Current"); powered = compound.getBoolean("Powered"); - super.read(compound, clientPacket); } @@ -51,7 +49,6 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { compound.putFloat("OffBelow", offWhenBelow); compound.putFloat("Current", currentLevel); compound.putBoolean("Powered", powered); - super.write(compound, clientPacket); } @@ -60,19 +57,19 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { } public void updateCurrentLevel() { - if (!observedInventory.isPresent()) { - if (!findNewInventory() && currentLevel != -1) { - world.setBlockState(pos, getBlockState().with(StockpileSwitchBlock.INDICATOR, 0), 3); - currentLevel = -1; - powered = false; - world.notifyNeighbors(pos, getBlockState().getBlock()); - } + if (!observedInventory.hasInventory()) { + if (currentLevel == -1) + return; + world.setBlockState(pos, getBlockState().with(StockpileSwitchBlock.INDICATOR, 0), 3); + currentLevel = -1; + powered = false; + world.notifyNeighbors(pos, getBlockState().getBlock()); return; } float occupied = 0; float totalSpace = 0; - IItemHandler inv = observedInventory.orElse(null); + IItemHandler inv = observedInventory.getInventory(); for (int slot = 0; slot < inv.getSlots(); slot++) { ItemStack stackInSlot = inv.getStackInSlot(slot); @@ -83,7 +80,9 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { continue; totalSpace += 1; - occupied += count * (1f / space); + + if (filtering.test(stackInSlot)) + occupied += count * (1f / space); } currentLevel = (float) occupied / totalSpace; @@ -109,36 +108,16 @@ public class StockpileSwitchTileEntity extends SmartTileEntity { super.lazyTick(); if (world.isRemote) return; - findNewInventory(); updateCurrentLevel(); } - private boolean findNewInventory() { - observedInventory = LazyOptional.empty(); - BlockPos invPos = getPos().offset(getBlockState().get(BlockStateProperties.HORIZONTAL_FACING)); - - if (!world.isBlockPresent(invPos)) - return false; - BlockState invState = world.getBlockState(invPos); - - if (!invState.hasTileEntity()) - return false; - TileEntity invTE = world.getTileEntity(invPos); - if (invTE == null) - return false; - - observedInventory = invTE.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); - if (observedInventory.isPresent()) { - updateCurrentLevel(); - return true; - } - - return false; - } - @Override public void addBehaviours(List behaviours) { + filtering = new FilteringBehaviour(this, new FilteredDetectorFilterSlot()).moveText(new Vec3d(0, 5, 0)) + .withCallback($ -> updateCurrentLevel()); + behaviours.add(filtering); + observedInventory = new InvManipulationBehaviour(this, InterfaceProvider.towardBlockFacing()).bypassSidedness(); + behaviours.add(observedInventory); } - } diff --git a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java index 6cf438249..604161694 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/BlockStateGen.java @@ -21,7 +21,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.mou import com.simibubi.create.content.contraptions.components.tracks.ReinforcedRailBlock; import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverBlock; import com.simibubi.create.content.palettes.PavedBlock; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Pointing; @@ -233,48 +232,6 @@ public class BlockStateGen { }); } - public static NonNullBiConsumer, RegistrateBlockstateProvider> beltObserver() { - return (c, p) -> { - - Map> models = new IdentityHashMap<>(); - Map baseModels = new HashMap<>(); - - for (boolean powered : Iterate.trueAndFalse) { - for (boolean belt : Iterate.trueAndFalse) { - String suffix = (belt ? "_belt" : "") + (powered ? "_powered" : ""); - baseModels.put(suffix, p.modLoc("block/belt_observer/base" + suffix)); - } - } - - for (BeltObserverBlock.Mode mode : BeltObserverBlock.Mode.values()) { - String modeName = mode.getName(); - HashMap map = new HashMap<>(); - for (boolean powered : Iterate.trueAndFalse) { - for (boolean belt : Iterate.trueAndFalse) { - String suffix = (belt ? "_belt" : "") + (powered ? "_powered" : ""); - map.put(suffix, p.models() - .withExistingParent("block/belt_observer/" + modeName + suffix, baseModels.get(suffix)) - .texture("texture", - p.modLoc("block/belt_observer_" + modeName + (powered ? "_powered" : "")))); - } - } - models.put(mode, map); - } - - p.getVariantBuilder(c.get()) - .forAllStates(state -> { - String suffix = (state.get(BeltObserverBlock.BELT) ? "_belt" : "") - + (state.get(BeltObserverBlock.POWERED) ? "_powered" : ""); - return ConfiguredModel.builder() - .modelFile(models.get(state.get(BeltObserverBlock.MODE)) - .get(suffix)) - .rotationY((int) state.get(BeltObserverBlock.HORIZONTAL_FACING) - .getHorizontalAngle()) - .build(); - }); - }; - } - public static NonNullBiConsumer, RegistrateBlockstateProvider> linearChassis() { return (c, p) -> { ResourceLocation side = p.modLoc("block/" + c.getName() + "_side"); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index cd8f69208..4f8716c89 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -655,7 +655,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("B B") .patternLine("BBB")), - BELT_OBSERVER = create(AllBlocks.BELT_OBSERVER).unlockedBy(AllItems.BELT_CONNECTOR::get) + BELT_OBSERVER = create(AllBlocks.CONTENT_OBSERVER).unlockedBy(AllItems.BELT_CONNECTOR::get) .viaShaped(b -> b.key('B', I.brassCasing()) .key('R', I.redstone()) .key('I', I.iron()) diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java index e8ca01bb1..0a23edb51 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java @@ -3,6 +3,8 @@ package com.simibubi.create.foundation.tileEntity.behaviour.inventory; import java.util.function.Function; import java.util.function.Predicate; +import javax.annotation.Nullable; + import com.google.common.base.Predicates; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.ItemHelper; @@ -33,17 +35,18 @@ public class InvManipulationBehaviour extends TileEntityBehaviour { protected InterfaceProvider target; protected LazyOptional targetCapability; protected boolean simulateNext; + protected boolean bypassSided; private BehaviourType behaviourType; public static InvManipulationBehaviour forExtraction(SmartTileEntity te, InterfaceProvider target) { return new InvManipulationBehaviour(EXTRACT, te, target); } - + public static InvManipulationBehaviour forInsertion(SmartTileEntity te, InterfaceProvider target) { return new InvManipulationBehaviour(INSERT, te, target); } - + public InvManipulationBehaviour(SmartTileEntity te, InterfaceProvider target) { this(TYPE, te, target); } @@ -56,6 +59,12 @@ public class InvManipulationBehaviour extends TileEntityBehaviour { this.target = target; this.targetCapability = LazyOptional.empty(); simulateNext = false; + bypassSided = false; + } + + public InvManipulationBehaviour bypassSidedness() { + bypassSided = true; + return this; } /** @@ -70,6 +79,11 @@ public class InvManipulationBehaviour extends TileEntityBehaviour { return targetCapability.isPresent(); } + @Nullable + public IItemHandler getInventory() { + return targetCapability.orElse(null); + } + public ItemStack extract() { return extract(getAmountFromFilter()); } @@ -158,8 +172,8 @@ public class InvManipulationBehaviour extends TileEntityBehaviour { TileEntity invTE = world.getTileEntity(pos); if (invTE == null) return; - targetCapability = - invTE.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, targetBlockFace.getFace()); + targetCapability = bypassSided ? invTE.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + : invTE.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, targetBlockFace.getFace()); if (targetCapability.isPresent()) targetCapability.addListener(this::onHandlerInvalidated); } diff --git a/src/main/resources/assets/create/models/block/belt_observer/base.json b/src/main/resources/assets/create/models/block/belt_observer/base.json deleted file mode 100644 index 32c14f1ba..000000000 --- a/src/main/resources/assets/create/models/block/belt_observer/base.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "brass_casing": "create:block/brass_casing", - "extractor": "create:block/extractor", - "particle": "#texture", - "entity_detector_off": "#texture", - "entity_detector_front": "create:block/belt_observer_front" - }, - "elements": [ - { - "name": "Bottom", - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [0, 14, 16, 16], "texture": "#brass_casing"}, - "east": {"uv": [0, 0, 2, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [0, 14, 16, 16], "texture": "#brass_casing"}, - "west": {"uv": [14, 0, 16, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#brass_casing"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Top", - "from": [0, 14, 0], - "to": [5, 16, 16], - "faces": { - "north": {"uv": [11, 0, 16, 2], "texture": "#brass_casing"}, - "east": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [0, 0, 5, 2], "texture": "#brass_casing"}, - "west": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [11, 0, 16, 16], "rotation": 180, "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 5, 16], "texture": "#brass_casing"} - } - }, - { - "name": "Top", - "from": [11, 14, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 5, 2], "texture": "#brass_casing"}, - "east": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [11, 0, 16, 2], "texture": "#brass_casing"}, - "west": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [0, 0, 5, 16], "rotation": 180, "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 5, 16], "texture": "#brass_casing"} - } - }, - { - "name": "Top", - "from": [5, 14, 0], - "to": [11, 16, 14], - "faces": { - "north": {"uv": [5, 0, 11, 2], "texture": "#brass_casing"}, - "east": {"uv": [14, 0, 16, 14], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [5, 1, 11, 3], "rotation": 180, "texture": "#entity_detector_off"}, - "west": {"uv": [0, 0, 2, 14], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [5, 2, 11, 16], "rotation": 180, "texture": "#entity_detector_off"}, - "down": {"uv": [5, 2, 11, 16], "texture": "#brass_casing"} - } - }, - { - "name": "Side", - "from": [0, 2, 0], - "to": [2, 14, 16], - "faces": { - "north": {"uv": [14, 2, 16, 14], "texture": "#brass_casing"}, - "east": {"uv": [2, 0, 14, 16], "rotation": 90, "texture": "#brass_casing"}, - "south": {"uv": [0, 2, 2, 14], "texture": "#brass_casing"}, - "west": {"uv": [2, 0, 14, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 2, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Side", - "from": [14, 2, 0], - "to": [16, 14, 16], - "faces": { - "north": {"uv": [0, 2, 2, 14], "texture": "#brass_casing"}, - "east": {"uv": [2, 0, 14, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [14, 2, 16, 14], "texture": "#brass_casing"}, - "west": {"uv": [2, 0, 14, 16], "rotation": 90, "texture": "#brass_casing"}, - "down": {"uv": [0, 0, 2, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Center", - "from": [2, 2, 1], - "to": [14, 14, 17], - "faces": { - "north": {"uv": [2, 2, 14, 14], "texture": "#brass_casing"}, - "east": {"uv": [0, 2, 16, 14], "texture": "#entity_detector_front"}, - "south": {"uv": [2, 2, 14, 14], "texture": "#entity_detector_front"}, - "west": {"uv": [0, 2, 16, 14], "texture": "#entity_detector_front"}, - "up": {"uv": [0, 0, 12, 16], "texture": "#brass_casing"}, - "down": {"uv": [0, 0, 12, 16], "texture": "#brass_casing"} - } - }, - { - "name": "Filter", - "from": [5, 13, 13], - "to": [11, 15, 18], - "rotation": {"angle": 0, "axis": "x", "origin": [9, 15, 16]}, - "faces": { - "north": {"uv": [4, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [4, 2, 6, 7], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [4, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [4, 2, 6, 7], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [5, 5, 11, 10], "texture": "#entity_detector_off"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_observer/base_belt.json b/src/main/resources/assets/create/models/block/belt_observer/base_belt.json deleted file mode 100644 index baed95503..000000000 --- a/src/main/resources/assets/create/models/block/belt_observer/base_belt.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "3": "create:block/extractor", - "brass_casing": "create:block/brass_casing", - "particle": "#texture", - "entity_detector_off": "#texture", - "entity_detector_front": "create:block/belt_observer_front" - }, - "elements": [ - { - "name": "Bottom", - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [0, 14, 16, 16], "texture": "#brass_casing"}, - "east": {"uv": [0, 0, 2, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [0, 14, 16, 16], "texture": "#brass_casing"}, - "west": {"uv": [14, 0, 16, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#brass_casing"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Side", - "from": [0, 2, 0], - "to": [2, 14, 16], - "faces": { - "north": {"uv": [14, 2, 16, 14], "texture": "#brass_casing"}, - "east": {"uv": [2, 0, 14, 16], "rotation": 90, "texture": "#brass_casing"}, - "south": {"uv": [0, 2, 2, 14], "texture": "#brass_casing"}, - "west": {"uv": [2, 0, 14, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [0, 0, 2, 16], "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 2, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Side", - "from": [14, 2, 0], - "to": [16, 14, 16], - "faces": { - "north": {"uv": [0, 2, 2, 14], "texture": "#brass_casing"}, - "east": {"uv": [2, 0, 14, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [14, 2, 16, 14], "texture": "#brass_casing"}, - "west": {"uv": [2, 0, 14, 16], "rotation": 90, "texture": "#brass_casing"}, - "up": {"uv": [0, 0, 2, 16], "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 2, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Center", - "from": [2, 2, 1], - "to": [14, 14, 17], - "faces": { - "north": {"uv": [2, 2, 14, 14], "texture": "#brass_casing"}, - "east": {"uv": [0, 2, 16, 14], "texture": "#entity_detector_front"}, - "south": {"uv": [2, 2, 14, 14], "texture": "#entity_detector_front"}, - "west": {"uv": [0, 2, 16, 14], "texture": "#entity_detector_front"}, - "up": {"uv": [0, 0, 12, 16], "texture": "#brass_casing"}, - "down": {"uv": [0, 0, 12, 16], "texture": "#brass_casing"} - } - }, - { - "name": "Belt Thing", - "from": [1, 5, 16], - "to": [15, 11, 30], - "faces": { - "north": {"uv": [1, 0, 15, 6], "texture": "#entity_detector_off"}, - "east": {"uv": [1, 0, 15, 6], "texture": "#entity_detector_off"}, - "south": {"uv": [1, 0, 15, 6], "texture": "#entity_detector_off"}, - "west": {"uv": [2, 0, 16, 6], "texture": "#entity_detector_off"}, - "up": {"uv": [1, 1, 15, 15], "texture": "#brass_casing"}, - "down": {"uv": [1, 1, 15, 15], "texture": "#brass_casing"} - } - }, - { - "name": "Top", - "from": [0, 14, 0], - "to": [5, 16, 16], - "faces": { - "north": {"uv": [11, 0, 16, 2], "texture": "#brass_casing"}, - "east": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [0, 0, 5, 2], "texture": "#brass_casing"}, - "west": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [11, 0, 16, 16], "rotation": 180, "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 5, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Top", - "from": [5, 14, 0], - "to": [11, 16, 14], - "faces": { - "north": {"uv": [5, 0, 11, 2], "texture": "#brass_casing"}, - "east": {"uv": [14, 0, 16, 14], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [5, 1, 11, 3], "rotation": 180, "texture": "#entity_detector_off"}, - "west": {"uv": [0, 0, 2, 14], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [5, 2, 11, 16], "rotation": 180, "texture": "#entity_detector_off"}, - "down": {"uv": [5, 2, 11, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Top", - "from": [11, 14, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 5, 2], "texture": "#brass_casing"}, - "east": {"uv": [14, 0, 16, 16], "rotation": 270, "texture": "#entity_detector_off"}, - "south": {"uv": [11, 0, 16, 2], "texture": "#brass_casing"}, - "west": {"uv": [0, 0, 2, 16], "rotation": 90, "texture": "#entity_detector_off"}, - "up": {"uv": [0, 0, 5, 16], "rotation": 180, "texture": "#entity_detector_off"}, - "down": {"uv": [0, 0, 5, 16], "texture": "#entity_detector_off"} - } - }, - { - "name": "Filter", - "from": [5, 13, 13], - "to": [11, 15, 18], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 15, 16]}, - "faces": { - "north": {"uv": [4, 1, 6, 7], "rotation": 270, "texture": "#3"}, - "east": {"uv": [4, 2, 6, 7], "rotation": 270, "texture": "#3"}, - "south": {"uv": [4, 1, 6, 7], "rotation": 270, "texture": "#3"}, - "west": {"uv": [4, 2, 6, 7], "rotation": 270, "texture": "#3"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#3"}, - "down": {"uv": [5, 5, 11, 10], "texture": "#3"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_observer/base_belt_powered.json b/src/main/resources/assets/create/models/block/belt_observer/base_belt_powered.json deleted file mode 100644 index a81d7492c..000000000 --- a/src/main/resources/assets/create/models/block/belt_observer/base_belt_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base_belt", - "textures": { - "3": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_observer/base_powered.json b/src/main/resources/assets/create/models/block/belt_observer/base_powered.json deleted file mode 100644 index 17177a585..000000000 --- a/src/main/resources/assets/create/models/block/belt_observer/base_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/belt_observer/base", - "textures": { - "extractor": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_observer/item.json b/src/main/resources/assets/create/models/block/belt_observer/item.json deleted file mode 100644 index c00967dc9..000000000 --- a/src/main/resources/assets/create/models/block/belt_observer/item.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)", - "parent": "block/block", - "display": { - "gui": { - "rotation": [ 30, 45, 0 ], - "translation": [ 0, 0, 0], - "scale":[ 0.625, 0.625, 0.625 ] - }, - "fixed": { - "rotation": [ 0, 180, 0 ], - "translation": [ 0, 0, 0], - "scale":[ 0.5, 0.5, 0.5 ] - } - }, - "textures": { - "brass_casing": "create:block/brass_casing", - "entity_detector_off": "create:block/belt_observer_detect", - "entity_detector_front": "create:block/belt_observer_front" - }, - "elements": [ - { - "name": "Bottom", - "from": [ 0, 0, 0 ], - "to": [ 16, 2, 16 ], - "faces": { - "north": { "texture": "#brass_casing", "uv": [ 0, 14, 16, 16 ] }, - "east": { "texture": "#entity_detector_off", "uv": [ 0, 0, 2, 16 ], "rotation": 270 }, - "south": { "texture": "#brass_casing", "uv": [ 0, 14, 16, 16 ] }, - "west": { "texture": "#entity_detector_off", "uv": [ 14, 0, 16, 16 ], "rotation": 90 }, - "up": { "texture": "#brass_casing", "uv": [ 0, 0, 16, 16 ] }, - "down": { "texture": "#entity_detector_off", "uv": [ 0, 0, 16, 16 ] } - } - }, - { - "name": "Top", - "from": [ 0, 14, 0 ], - "to": [ 16, 16, 16 ], - "faces": { - "north": { "texture": "#brass_casing", "uv": [ 0, 0, 16, 2 ] }, - "east": { "texture": "#entity_detector_off", "uv": [ 14, 0, 16, 16 ], "rotation": 270 }, - "south": { "texture": "#brass_casing", "uv": [ 0, 0, 16, 2 ] }, - "west": { "texture": "#entity_detector_off", "uv": [ 0, 0, 2, 16 ], "rotation": 90 }, - "up": { "texture": "#entity_detector_off", "uv": [ 0, 0, 16, 16 ], "rotation": 180 }, - "down": { "texture": "#brass_casing", "uv": [ 0, 0, 16, 16 ] } - } - }, - { - "name": "Side", - "from": [ 0, 2, 0 ], - "to": [ 2, 14, 16 ], - "faces": { - "north": { "texture": "#brass_casing", "uv": [ 14, 2, 16, 14 ] }, - "east": { "texture": "#brass_casing", "uv": [ 2, 0, 14, 16 ], "rotation": 90 }, - "south": { "texture": "#brass_casing", "uv": [ 0, 2, 2, 14 ] }, - "west": { "texture": "#entity_detector_off", "uv": [ 2, 0, 14, 16 ], "rotation": 90 }, - "up": { "texture": "#entity_detector_off", "uv": [ 0, 0, 2, 16 ] }, - "down": { "texture": "#entity_detector_off", "uv": [ 0, 0, 2, 16 ] } - } - }, - { - "name": "Side", - "from": [ 14, 2, 0 ], - "to": [ 16, 14, 16 ], - "faces": { - "north": { "texture": "#brass_casing", "uv": [ 0, 2, 2, 14 ] }, - "east": { "texture": "#entity_detector_off", "uv": [ 2, 0, 14, 16 ], "rotation": 270 }, - "south": { "texture": "#brass_casing", "uv": [ 14, 2, 16, 14 ] }, - "west": { "texture": "#brass_casing", "uv": [ 2, 0, 14, 16 ], "rotation": 90 }, - "up": { "texture": "#entity_detector_off", "uv": [ 0, 0, 2, 16 ] }, - "down": { "texture": "#entity_detector_off", "uv": [ 0, 0, 2, 16 ] } - } - }, - { - "name": "Center", - "from": [ 2, 2, 1 ], - "to": [ 14, 14, 17 ], - "faces": { - "north": { "texture": "#brass_casing", "uv": [ 2, 2, 14, 14 ] }, - "east": { "texture": "#entity_detector_front", "uv": [ 0, 2, 16, 14 ] }, - "south": { "texture": "#entity_detector_front", "uv": [ 2, 2, 14, 14 ] }, - "west": { "texture": "#entity_detector_front", "uv": [ 0, 2, 16, 14 ] }, - "up": { "texture": "#brass_casing", "uv": [ 0, 0, 12, 16 ] }, - "down": { "texture": "#brass_casing", "uv": [ 0, 0, 12, 16 ] } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/content_observer/block.json b/src/main/resources/assets/create/models/block/content_observer/block.json new file mode 100644 index 000000000..4e3ce8d38 --- /dev/null +++ b/src/main/resources/assets/create/models/block/content_observer/block.json @@ -0,0 +1,80 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "5": "create:block/brass_casing_inner", + "8": "create:block/content_observer", + "9": "create:block/content_observer_inner", + "10": "create:block/filtered_detector_top", + "brass_casing": "create:block/brass_casing", + "particle": "create:block/brass_casing_side", + "1_brass_casing": "create:block/brass_casing_side", + "end": "create:block/filtered_detector_front" + }, + "elements": [ + { + "name": "Bottom Plate", + "from": [0, 0, 0], + "to": [16, 6, 16], + "faces": { + "north": {"uv": [0, 10, 16, 16], "texture": "#8"}, + "east": {"uv": [0, 10, 16, 16], "texture": "#8"}, + "south": {"uv": [0, 10, 16, 16], "texture": "#8"}, + "west": {"uv": [0, 10, 16, 16], "texture": "#8"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#9"}, + "down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#brass_casing"} + } + }, + { + "name": "Center", + "from": [0.9, 2, 0.9], + "to": [15.1, 14, 15.1], + "faces": { + "north": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, + "south": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, + "west": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, + "up": {"uv": [0, 0, 14, 14], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 14, 14], "rotation": 270, "texture": "#5"} + } + }, + { + "name": "Indicator", + "from": [3.1, 3.1, -1.9], + "to": [12.9, 12.9, 1.1], + "faces": { + "north": {"uv": [0, 0, 10, 10], "texture": "#end"}, + "east": {"uv": [10, 0, 13, 10], "texture": "#end"}, + "west": {"uv": [10, 0, 13, 10], "texture": "#end"}, + "up": {"uv": [10, 0, 13, 10], "rotation": 90, "texture": "#end"}, + "down": {"uv": [10, 0, 13, 10], "rotation": 270, "texture": "#end"} + } + }, + { + "name": "Top Plate", + "from": [0, 14, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 2], "texture": "#1_brass_casing"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#1_brass_casing"}, + "south": {"uv": [0, 0, 16, 2], "texture": "#1_brass_casing"}, + "west": {"uv": [0, 0, 16, 2], "texture": "#1_brass_casing"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#10"}, + "down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#brass_casing"} + } + } + ], + "display": { + "gui": { + "rotation": [30, -135, 0], + "scale": [0.625, 0.625, 0.625] + } + }, + "groups": [ + { + "name": "stockpile_switch", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/content_observer/block_powered.json b/src/main/resources/assets/create/models/block/content_observer/block_powered.json new file mode 100644 index 000000000..7ae7927b3 --- /dev/null +++ b/src/main/resources/assets/create/models/block/content_observer/block_powered.json @@ -0,0 +1,7 @@ +{ + "parent": "create:block/content_observer/block", + "textures": { + "8": "create:block/content_observer_powered", + "9": "create:block/content_observer_inner_powered" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/stockpile_switch.json b/src/main/resources/assets/create/models/block/stockpile_switch.json index cfe456960..9439bb80c 100644 --- a/src/main/resources/assets/create/models/block/stockpile_switch.json +++ b/src/main/resources/assets/create/models/block/stockpile_switch.json @@ -4,10 +4,11 @@ "textures": { "5": "create:block/brass_casing_inner", "6": "create:block/brass_casing", + "7": "create:block/filtered_detector_top", "indicator": "create:block/indicator/0", "particle": "create:block/brass_casing_side", "brass_casing": "create:block/brass_casing_side", - "end": "create:block/stockpile_switch_end" + "end": "create:block/filtered_detector_front" }, "elements": [ { @@ -32,16 +33,16 @@ "east": {"uv": [0, 0, 16, 2], "texture": "#brass_casing"}, "south": {"uv": [0, 0, 16, 2], "texture": "#brass_casing"}, "west": {"uv": [0, 0, 16, 2], "texture": "#brass_casing"}, - "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#6"}, + "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#7"}, "down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#6"} } }, { "name": "Center", - "from": [1, 2, 1], - "to": [15, 14, 15], + "from": [0.9, 2, 0.9], + "to": [15.1, 14, 15.1], "faces": { - "north": {"uv": [0, 0, 14, 12], "texture": "#5"}, + "north": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, "east": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, "south": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, "west": {"uv": [0, 1, 12, 15], "rotation": 90, "texture": "#5"}, diff --git a/src/main/resources/assets/create/textures/block/belt_observer_detect.png b/src/main/resources/assets/create/textures/block/belt_observer_detect.png deleted file mode 100644 index 4faaaaf6e..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_detect.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_detect_powered.png b/src/main/resources/assets/create/textures/block/belt_observer_detect_powered.png deleted file mode 100644 index cfbcbd3f9..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_detect_powered.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_eject.png b/src/main/resources/assets/create/textures/block/belt_observer_eject.png deleted file mode 100644 index 2af7bb033..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_eject.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_eject_powered.png b/src/main/resources/assets/create/textures/block/belt_observer_eject_powered.png deleted file mode 100644 index 0ba27e18e..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_eject_powered.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_front.png b/src/main/resources/assets/create/textures/block/belt_observer_front.png deleted file mode 100644 index d5f96f355..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_front.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_pulse.png b/src/main/resources/assets/create/textures/block/belt_observer_pulse.png deleted file mode 100644 index 4335c723e..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_pulse.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_pulse_powered.png b/src/main/resources/assets/create/textures/block/belt_observer_pulse_powered.png deleted file mode 100644 index bc43d342c..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_pulse_powered.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_split.png b/src/main/resources/assets/create/textures/block/belt_observer_split.png deleted file mode 100644 index ba7c764f0..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_split.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/belt_observer_split_powered.png b/src/main/resources/assets/create/textures/block/belt_observer_split_powered.png deleted file mode 100644 index 85599beba..000000000 Binary files a/src/main/resources/assets/create/textures/block/belt_observer_split_powered.png and /dev/null differ diff --git a/src/main/resources/assets/create/textures/block/chute.png b/src/main/resources/assets/create/textures/block/chute.png index dbc6085e0..03bedacdc 100644 Binary files a/src/main/resources/assets/create/textures/block/chute.png and b/src/main/resources/assets/create/textures/block/chute.png differ diff --git a/src/main/resources/assets/create/textures/block/content_observer.png b/src/main/resources/assets/create/textures/block/content_observer.png new file mode 100644 index 000000000..fae25ed39 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/content_observer.png differ diff --git a/src/main/resources/assets/create/textures/block/content_observer_inner.png b/src/main/resources/assets/create/textures/block/content_observer_inner.png new file mode 100644 index 000000000..a0c6d29b5 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/content_observer_inner.png differ diff --git a/src/main/resources/assets/create/textures/block/content_observer_inner_powered.png b/src/main/resources/assets/create/textures/block/content_observer_inner_powered.png new file mode 100644 index 000000000..b99b2d009 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/content_observer_inner_powered.png differ diff --git a/src/main/resources/assets/create/textures/block/content_observer_powered.png b/src/main/resources/assets/create/textures/block/content_observer_powered.png new file mode 100644 index 000000000..e0d087040 Binary files /dev/null and b/src/main/resources/assets/create/textures/block/content_observer_powered.png differ diff --git a/src/main/resources/assets/create/textures/block/stockpile_switch_end.png b/src/main/resources/assets/create/textures/block/filtered_detector_front.png similarity index 100% rename from src/main/resources/assets/create/textures/block/stockpile_switch_end.png rename to src/main/resources/assets/create/textures/block/filtered_detector_front.png diff --git a/src/main/resources/assets/create/textures/block/filtered_detector_top.png b/src/main/resources/assets/create/textures/block/filtered_detector_top.png new file mode 100644 index 000000000..0a037bd0d Binary files /dev/null and b/src/main/resources/assets/create/textures/block/filtered_detector_top.png differ