mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-15 22:43:41 +01:00
Basic projector gui
This commit is contained in:
parent
7b7c6ef3c5
commit
fc919c4ac4
26 changed files with 729 additions and 552 deletions
|
@ -47,6 +47,7 @@ e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.js
|
|||
cbcdab42d01f8085db9e5f8db884f8adf7f17625 assets/create/blockstates/chiseled_scoria.json
|
||||
291952556c52fba2af5bbd793c71af81abd27e71 assets/create/blockstates/chiseled_weathered_limestone.json
|
||||
470e8c6a9c37b91fa745bc4f6e9d3740bd72467e assets/create/blockstates/chocolate.json
|
||||
4319ddb44dabbb1ed189d86429ca57091ba2dcf6 assets/create/blockstates/chromatic_projector.json
|
||||
b59324f051f21d8ce1a48a08f4721a61a3c414d6 assets/create/blockstates/chute.json
|
||||
4947c261310445fa55b92038326ac82967d192dd assets/create/blockstates/clockwork_bearing.json
|
||||
1f33834c685e3243882acfe20183fe64dfa872be assets/create/blockstates/clutch.json
|
||||
|
@ -406,20 +407,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
|
|||
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
|
||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
97e9ee471ea650f6b7f3d3f39f00201cd5ad752d assets/create/lang/en_ud.json
|
||||
514ab1f6fa3d24dc575a5dcaaaa96a8009da7414 assets/create/lang/en_us.json
|
||||
7e45e9a69fb4d21d199174673f2ea6fe35ee6859 assets/create/lang/unfinished/de_de.json
|
||||
2af0dd8cd0776b8ed5110990405f3cd515abe8e8 assets/create/lang/unfinished/es_es.json
|
||||
90fc3a9475b957eebf10380a960416b072987541 assets/create/lang/unfinished/es_mx.json
|
||||
997cc00c6a9afbb142e25c5a1840908363afad41 assets/create/lang/unfinished/fr_fr.json
|
||||
6a9c89ff7a7c2df5f78a6a739a204744a4a5607a assets/create/lang/unfinished/it_it.json
|
||||
e21697e70444e3c8fb367b7a4fe867726157390d assets/create/lang/unfinished/ja_jp.json
|
||||
9f2d7b6fc84f6257837b4c517489f6ef31a4e1a5 assets/create/lang/unfinished/ko_kr.json
|
||||
5bcfe026f3bb3f0aa0ea415e54dedad4195bb70a assets/create/lang/unfinished/nl_nl.json
|
||||
bc60cb08266e8d13523d086cdb85aa12da78a47b assets/create/lang/unfinished/pt_br.json
|
||||
288e3e76a1aa090a676415aeb9f5383b3386e40d assets/create/lang/unfinished/ru_ru.json
|
||||
0b6852ca1cea71d24cfdee7004ab37fa7810a0fe assets/create/lang/unfinished/zh_cn.json
|
||||
619d82eba592f4ae88ddbc2c9dfae02627876300 assets/create/lang/unfinished/zh_tw.json
|
||||
ca9a861ca831a782966c22ad0c68ff966710769a assets/create/lang/en_ud.json
|
||||
02f2424747d50bad2f844e905646d816899a03d7 assets/create/lang/en_us.json
|
||||
08e387354ee4ab1a4837277c10847e603cf7ac59 assets/create/lang/unfinished/de_de.json
|
||||
b5b3c69b4539aac10f03a5cb2b3459ca094d373c assets/create/lang/unfinished/es_es.json
|
||||
5d17d28dc81011ab21e013fedd707fcf8ece0572 assets/create/lang/unfinished/es_mx.json
|
||||
9fd9df90d1ecf8ac8c95fadfcd5bf4a04d182681 assets/create/lang/unfinished/fr_fr.json
|
||||
1cd6952f8b65a75861e17f4c4de867af54a6b055 assets/create/lang/unfinished/it_it.json
|
||||
0db66a9cf76bbbafc487a5483e3f10ec306f96d9 assets/create/lang/unfinished/ja_jp.json
|
||||
07f51957cb8776b53c6665c8cea3b544e09d13d9 assets/create/lang/unfinished/ko_kr.json
|
||||
62df112c0264af0962c39c953497217240e2c92d assets/create/lang/unfinished/nl_nl.json
|
||||
1c86e439423a682b8de29777f1641b0a3f138c42 assets/create/lang/unfinished/pt_br.json
|
||||
5d54f4997ba80ec505c1f38c5f6f3fde0a41a0f5 assets/create/lang/unfinished/ru_ru.json
|
||||
89e04cc0bdf17762f089c673aa3bb1fe0707d3df assets/create/lang/unfinished/zh_cn.json
|
||||
c310383e5617d0cfec551eef31272d9a19cd4445 assets/create/lang/unfinished/zh_tw.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
@ -540,6 +541,7 @@ db7279f05c1d89e21da8887a15d3a1cfff4a9cf2 assets/create/models/block/chiseled_dar
|
|||
1cf4b68c8cf1885ede334fbfa54e52c76ba211b6 assets/create/models/block/chiseled_scoria.json
|
||||
041a20dd674277ff4f1613a0a89600f05458edf4 assets/create/models/block/chiseled_weathered_limestone.json
|
||||
4156227e18c0896ce83f260f71b939abbbf4f01e assets/create/models/block/chocolate.json
|
||||
5e3819de78eb6e7511839905fa0fdde4babcaf21 assets/create/models/block/chromatic_projector.json
|
||||
30fe120af3cb32faf0729df4d2cdf868f804be17 assets/create/models/block/clockwork_bearing.json
|
||||
1f01a4b6608f75145734b60ddf4a33ce318425ff assets/create/models/block/copper_casing.json
|
||||
b2c528cfd24a5cb0cb96c45d0a914f1090f8c32b assets/create/models/block/copper_valve_handle.json
|
||||
|
@ -1253,6 +1255,7 @@ a47fbe5f2da79080d99ef0975bfa8da4d08f8be4 assets/create/models/item/chiseled_scor
|
|||
70232ce9b88119fb383717e2c1ad113f7aad6a99 assets/create/models/item/chiseled_weathered_limestone.json
|
||||
7a3737f6156213762e28a4dbedc4c6828dc1878c assets/create/models/item/chocolate_bucket.json
|
||||
87637b39c3a5a386457d52b37eb65f1c4bcabaf0 assets/create/models/item/chocolate_glazed_berries.json
|
||||
7ee3446e9164e466421e4349e1eada3101f3c976 assets/create/models/item/chromatic_projector.json
|
||||
fe67c3f380d17735a9436a4579a8be1a02b8e4a0 assets/create/models/item/chute.json
|
||||
6680a68526576ded5dac2aa3bc9fb9de3e744146 assets/create/models/item/cinder_flour.json
|
||||
c1da21be9f1af4f7a2ef4ec9cd92195d65ada316 assets/create/models/item/clockwork_bearing.json
|
||||
|
@ -2420,6 +2423,7 @@ ab820bbaaf67c6697dfbab33c05fb73b18c70bfb data/create/loot_tables/blocks/chiseled
|
|||
4b09725707bac4c5813e2bb489ff848d0d964ae9 data/create/loot_tables/blocks/chiseled_limestone.json
|
||||
43f446abd3c1c184a08645979edf620e59955a30 data/create/loot_tables/blocks/chiseled_scoria.json
|
||||
adde89e46b12de1eee6fd0c5cb98c5f45feefc15 data/create/loot_tables/blocks/chiseled_weathered_limestone.json
|
||||
7ea58979dbc1ac44626728afe8fe771c88e250d2 data/create/loot_tables/blocks/chromatic_projector.json
|
||||
07ccc1576a71338cb73c4e06f8c28a2c86843877 data/create/loot_tables/blocks/chute.json
|
||||
778b53c36d73b6e9c78fd6c091c9c3535c3c18f7 data/create/loot_tables/blocks/clockwork_bearing.json
|
||||
d76113310fc56eca6382d44df174096f2210d416 data/create/loot_tables/blocks/clutch.json
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
"block.create.chiseled_scoria": "\u0250\u0131\u0279o\u0254S p\u01DD\u05DF\u01DDs\u0131\u0265\u0186",
|
||||
"block.create.chiseled_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u05DF\u01DDs\u0131\u0265\u0186",
|
||||
"block.create.chocolate": "\u01DD\u0287\u0250\u05DFo\u0254o\u0265\u0186",
|
||||
"block.create.chromatic_projector": "\u0279o\u0287\u0254\u01DD\u0638o\u0279\u0500 \u0254\u0131\u0287\u0250\u026Fo\u0279\u0265\u0186",
|
||||
"block.create.chute": "\u01DD\u0287n\u0265\u0186",
|
||||
"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",
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
"block.create.chiseled_scoria": "Chiseled Scoria",
|
||||
"block.create.chiseled_weathered_limestone": "Chiseled Weathered Limestone",
|
||||
"block.create.chocolate": "Chocolate",
|
||||
"block.create.chromatic_projector": "Chromatic Projector",
|
||||
"block.create.chute": "Chute",
|
||||
"block.create.clockwork_bearing": "Clockwork Bearing",
|
||||
"block.create.clutch": "Clutch",
|
||||
|
@ -1138,7 +1139,6 @@
|
|||
"create.gui.config.overlay6": "and save the new position",
|
||||
"create.gui.config.overlay7": "Run /create overlay reset",
|
||||
"create.gui.config.overlay8": "to reset to the default position",
|
||||
|
||||
"create.command.killTPSCommand": "killtps",
|
||||
"create.command.killTPSCommand.status.slowed_by.0": "[Create]: Server tick is currently slowed by %s ms :o",
|
||||
"create.command.killTPSCommand.status.slowed_by.1": "[Create]: Server tick is slowed by %s ms now >:)",
|
||||
|
@ -1146,12 +1146,16 @@
|
|||
"create.command.killTPSCommand.status.usage.0": "[Create]: use /killtps stop to bring back server tick to regular speed",
|
||||
"create.command.killTPSCommand.status.usage.1": "[Create]: use /killtps start <tickTime> to artificially slow down the server tick",
|
||||
"create.command.killTPSCommand.argument.tickTime": "tickTime",
|
||||
|
||||
"create.contraption.minecart_contraption_too_big": "This Cart Contraption seems too big to pick up",
|
||||
|
||||
|
||||
"create.gui.chromatic_projector.title": "Chromatic Projector",
|
||||
"create.gui.chromatic_projector.filter.invert": "Invert",
|
||||
"create.gui.chromatic_projector.filter.sepia": "Sepia",
|
||||
"create.gui.chromatic_projector.filter.grayscale": "Grayscale",
|
||||
"create.gui.chromatic_projector.filter.saturate": "Saturate",
|
||||
"create.gui.chromatic_projector.filter.hue_shift": "Hue shift",
|
||||
"create.gui.chromatic_projector.filter.end": "End",
|
||||
"create.gui.chromatic_projector.filter": "Filter",
|
||||
"_": "->------------------------] Subtitles [------------------------<-",
|
||||
|
||||
"create.subtitle.cogs": "Cogwheels rumble",
|
||||
"create.subtitle.slime_added": "Slime squishes",
|
||||
"create.subtitle.mixing": "Mixing Noises",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 921",
|
||||
|
||||
"_": "Missing Localizations: 922",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "Akazienholzfenster",
|
||||
"block.create.acacia_window_pane": "Akazienholzfensterscheibe",
|
||||
"block.create.adjustable_chain_gearshift": "Verstellbares Kettengetriebe",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "Gemeißelte Schlacke",
|
||||
"block.create.chiseled_weathered_limestone": "Gemeißelter verwitterter Kalkstein",
|
||||
"block.create.chocolate": "Schokolade",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "Rinne",
|
||||
"block.create.clockwork_bearing": "Uhrwerk-Lager",
|
||||
"block.create.clutch": "Kupplung",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 614",
|
||||
|
||||
"_": "Missing Localizations: 615",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "Ventana de acacia",
|
||||
"block.create.acacia_window_pane": "Panel de ventana de acacia",
|
||||
"block.create.adjustable_chain_gearshift": "Cadena de transmisión ajustable",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "Escoria cincelada",
|
||||
"block.create.chiseled_weathered_limestone": "Piedra caliza erosionada cincelada",
|
||||
"block.create.chocolate": "Chocolate",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "Ducto",
|
||||
"block.create.clockwork_bearing": "Rodamiento de reloj",
|
||||
"block.create.clutch": "Embrague",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1272",
|
||||
|
||||
"_": "Missing Localizations: 1273",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "Ventana de Acacia",
|
||||
"block.create.acacia_window_pane": "Panel de Ventana de Acacia",
|
||||
"block.create.adjustable_chain_gearshift": "Cambio Ajustable de Velocidad de Cadena",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "Escoria Grabada",
|
||||
"block.create.chiseled_weathered_limestone": "Caliza Meteorizada Grabada",
|
||||
"block.create.chocolate": "Chocolate",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "Vertedor",
|
||||
"block.create.clockwork_bearing": "Rodamiento de Reloj",
|
||||
"block.create.clutch": "Embrague",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1171",
|
||||
|
||||
"_": "Missing Localizations: 1172",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "Fenêtre en acacia",
|
||||
"block.create.acacia_window_pane": "Vitre en acacia",
|
||||
"block.create.adjustable_chain_gearshift": "UNLOCALIZED: Adjustable Chain Gearshift",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "Scoria taillé",
|
||||
"block.create.chiseled_weathered_limestone": "Calcaire altéré taillé",
|
||||
"block.create.chocolate": "Chocolat",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "Glissière",
|
||||
"block.create.clockwork_bearing": "Roulement mécanique horloger",
|
||||
"block.create.clutch": "Embrayage",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 631",
|
||||
|
||||
"_": "Missing Localizations: 632",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "Finestra di acacia",
|
||||
"block.create.acacia_window_pane": "Pannello di finestra di acacia",
|
||||
"block.create.adjustable_chain_gearshift": "Cambio a catena regolabile",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "Scoria cesellata",
|
||||
"block.create.chiseled_weathered_limestone": "Calcare consumato cesellato",
|
||||
"block.create.chocolate": "Cioccolato",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "Scivolo",
|
||||
"block.create.clockwork_bearing": "Supporto dell'orologio",
|
||||
"block.create.clutch": "Frizione",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 613",
|
||||
|
||||
"_": "Missing Localizations: 614",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "アカシアの窓",
|
||||
"block.create.acacia_window_pane": "アカシアの窓パネル",
|
||||
"block.create.adjustable_chain_gearshift": "可変チェーンギアシフト",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "模様入りのスコリア",
|
||||
"block.create.chiseled_weathered_limestone": "模様入りの風化した石灰岩",
|
||||
"block.create.chocolate": "チョコレート",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "シュート",
|
||||
"block.create.clockwork_bearing": "時計仕掛けのベアリング",
|
||||
"block.create.clutch": "クラッチ",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 684",
|
||||
|
||||
"_": "Missing Localizations: 685",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "아카시아 유리창",
|
||||
"block.create.acacia_window_pane": "아카시아나무 유리판 ",
|
||||
"block.create.adjustable_chain_gearshift": "벨트 변속기",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "조각된 스코리아",
|
||||
"block.create.chiseled_weathered_limestone": "조각된 풍화된 석회암",
|
||||
"block.create.chocolate": "초콜릿",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "슈트",
|
||||
"block.create.clockwork_bearing": "시계 베어링",
|
||||
"block.create.clutch": "클러치",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1561",
|
||||
|
||||
"_": "Missing Localizations: 1562",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "UNLOCALIZED: Acacia Window",
|
||||
"block.create.acacia_window_pane": "UNLOCALIZED: Acacia Window Pane",
|
||||
"block.create.adjustable_chain_gearshift": "UNLOCALIZED: Adjustable Chain Gearshift",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria",
|
||||
"block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone",
|
||||
"block.create.chocolate": "UNLOCALIZED: Chocolate",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "UNLOCALIZED: Chute",
|
||||
"block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing",
|
||||
"block.create.clutch": "Koppeling",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1615",
|
||||
|
||||
"_": "Missing Localizations: 1616",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "UNLOCALIZED: Acacia Window",
|
||||
"block.create.acacia_window_pane": "UNLOCALIZED: Acacia Window Pane",
|
||||
"block.create.adjustable_chain_gearshift": "UNLOCALIZED: Adjustable Chain Gearshift",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "UNLOCALIZED: Chiseled Scoria",
|
||||
"block.create.chiseled_weathered_limestone": "UNLOCALIZED: Chiseled Weathered Limestone",
|
||||
"block.create.chocolate": "UNLOCALIZED: Chocolate",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "UNLOCALIZED: Chute",
|
||||
"block.create.clockwork_bearing": "UNLOCALIZED: Clockwork Bearing",
|
||||
"block.create.clutch": "Embreagem",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 528",
|
||||
|
||||
"_": "Missing Localizations: 529",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "Акациевое окно",
|
||||
"block.create.acacia_window_pane": "Панель из акациевого окна",
|
||||
"block.create.adjustable_chain_gearshift": "Регулируемый цепной механизм",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "Резной пепел",
|
||||
"block.create.chiseled_weathered_limestone": "Выветренный резной известняк",
|
||||
"block.create.chocolate": "Шоколад",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "Желоб",
|
||||
"block.create.clockwork_bearing": "Часовой механизм",
|
||||
"block.create.clutch": "Сцепление",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 628",
|
||||
|
||||
"_": "Missing Localizations: 629",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "金合欢窗户",
|
||||
"block.create.acacia_window_pane": "金合欢窗户板",
|
||||
"block.create.adjustable_chain_gearshift": "可调节链式传动箱",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "錾制熔渣",
|
||||
"block.create.chiseled_weathered_limestone": "錾制风化石灰岩",
|
||||
"block.create.chocolate": "巧克力",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "溜槽",
|
||||
"block.create.clockwork_bearing": "时钟轴承",
|
||||
"block.create.clutch": "离合器",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"_": "Missing Localizations: 633",
|
||||
|
||||
"_": "Missing Localizations: 634",
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.create.acacia_window": "相思木窗戶",
|
||||
"block.create.acacia_window_pane": "相思木窗戶片",
|
||||
"block.create.adjustable_chain_gearshift": "可調式鏈式變速箱",
|
||||
|
@ -52,6 +50,7 @@
|
|||
"block.create.chiseled_scoria": "鏨製火成岩",
|
||||
"block.create.chiseled_weathered_limestone": "鏨製風化石灰岩",
|
||||
"block.create.chocolate": "巧克力",
|
||||
"block.create.chromatic_projector": "UNLOCALIZED: Chromatic Projector",
|
||||
"block.create.chute": "滑道",
|
||||
"block.create.clockwork_bearing": "時鐘軸承",
|
||||
"block.create.clutch": "離合器",
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import com.simibubi.create.content.curiosities.projector.ChromaticProjectorContainer;
|
||||
import com.simibubi.create.content.curiosities.projector.ChromaticProjectorScreen;
|
||||
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateContainer;
|
||||
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateScreen;
|
||||
import com.simibubi.create.content.logistics.item.filter.AttributeFilterContainer;
|
||||
|
@ -34,7 +32,6 @@ public enum AllContainerTypes {
|
|||
FLEXCRATE(AdjustableCrateContainer::new),
|
||||
FILTER(FilterContainer::new),
|
||||
ATTRIBUTE_FILTER(AttributeFilterContainer::new),
|
||||
CHROMATIC_PROJECTOR(ChromaticProjectorContainer::new),
|
||||
|
||||
;
|
||||
|
||||
|
@ -61,7 +58,6 @@ public enum AllContainerTypes {
|
|||
bind(FLEXCRATE, AdjustableCrateScreen::new);
|
||||
bind(FILTER, FilterScreen::new);
|
||||
bind(ATTRIBUTE_FILTER, AttributeFilterScreen::new);
|
||||
bind(CHROMATIC_PROJECTOR, ChromaticProjectorScreen::new);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
|
|
|
@ -2,13 +2,16 @@ package com.simibubi.create.content.curiosities.projector;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.gui.ScreenOpener;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.Hand;
|
||||
|
@ -16,7 +19,9 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.util.math.BlockRayTraceResult;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.network.NetworkHooks;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
|
||||
public class ChromaticProjectorBlock extends Block implements ITE<ChromaticProjectorTileEntity> {
|
||||
public ChromaticProjectorBlock(Properties p_i48440_1_) {
|
||||
|
@ -26,14 +31,21 @@ public class ChromaticProjectorBlock extends Block implements ITE<ChromaticProje
|
|||
@Override
|
||||
public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn,
|
||||
BlockRayTraceResult hit) {
|
||||
if (worldIn.isRemote)
|
||||
return ActionResultType.SUCCESS;
|
||||
ItemStack held = player.getHeldItemMainhand();
|
||||
if (AllItems.WRENCH.isIn(held))
|
||||
return ActionResultType.PASS;
|
||||
|
||||
withTileEntityDo(worldIn, pos,
|
||||
te -> NetworkHooks.openGui((ServerPlayerEntity) player, te, te::sendToContainer));
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT,
|
||||
() -> () -> withTileEntityDo(worldIn, pos, te -> this.displayScreen(te, player)));
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
|
||||
@OnlyIn(value = Dist.CLIENT)
|
||||
protected void displayScreen(ChromaticProjectorTileEntity te, PlayerEntity player) {
|
||||
if (player instanceof ClientPlayerEntity)
|
||||
ScreenOpener.open(new ChromaticProjectorScreen(te));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTileEntity(BlockState state) {
|
||||
return true;
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
package com.simibubi.create.content.curiosities.projector;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllContainerTypes;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
import net.minecraft.inventory.container.ContainerType;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
|
||||
public class ChromaticProjectorContainer extends Container {
|
||||
|
||||
public ChromaticProjectorContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
|
||||
super(AllContainerTypes.CHROMATIC_PROJECTOR.type, id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public ChromaticProjectorContainer(int id, PlayerInventory inv, ChromaticProjectorTileEntity te) {
|
||||
super(AllContainerTypes.CHROMATIC_PROJECTOR.type, id);
|
||||
}
|
||||
|
||||
public ChromaticProjectorContainer(@Nullable ContainerType<?> p_i50105_1_, int p_i50105_2_) {
|
||||
super(p_i50105_1_, p_i50105_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(PlayerEntity p_75145_1_) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,62 +1,186 @@
|
|||
package com.simibubi.create.content.curiosities.projector;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Vector;
|
||||
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.simibubi.create.foundation.gui.AbstractSimiContainerScreen;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.foundation.gui.AbstractSimiScreen;
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.gui.AllIcons;
|
||||
import com.simibubi.create.foundation.gui.GuiGameElement;
|
||||
import com.simibubi.create.foundation.gui.widgets.IconButton;
|
||||
import com.simibubi.create.foundation.gui.widgets.ScrollInput;
|
||||
import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.ListNBT;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.StringTextComponent;
|
||||
|
||||
public class ChromaticProjectorScreen extends AbstractSimiContainerScreen<ChromaticProjectorContainer> {
|
||||
public class ChromaticProjectorScreen extends AbstractSimiScreen {
|
||||
|
||||
private ScrollInput filter;
|
||||
private ScrollInput radius;
|
||||
private ScrollInput feather;
|
||||
private ScrollInput fade;
|
||||
public static final int MAX_STEPS = 4;
|
||||
|
||||
public ChromaticProjectorScreen(ChromaticProjectorContainer container, PlayerInventory inv, ITextComponent title) {
|
||||
super(container, inv, title);
|
||||
private final ItemStack renderedItem = AllBlocks.CHROMATIC_PROJECTOR.asStack();
|
||||
private final AllGuiTextures background = AllGuiTextures.PROJECTOR;
|
||||
private IconButton confirmButton;
|
||||
|
||||
private final ITextComponent title = Lang.translate("gui.chromatic_projector.title");
|
||||
private ListNBT compareTag;
|
||||
private Vector<FilterStep> stages;
|
||||
private BlockPos pos;
|
||||
|
||||
private Vector<Vector<ScrollInput>> inputs;
|
||||
|
||||
public ChromaticProjectorScreen(ChromaticProjectorTileEntity te) {
|
||||
this.stages = te.stages;
|
||||
this.pos = te.getPos();
|
||||
//compareTag = Instruction.serializeAll(stages);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
setWindowSize(background.width + 50, background.height);
|
||||
super.init();
|
||||
|
||||
widgets.clear();
|
||||
|
||||
int x = guiLeft + 11;
|
||||
int y = guiTop + 20;
|
||||
inputs = new Vector<>(MAX_STEPS);
|
||||
for (int row = 0; row < inputs.capacity(); row++)
|
||||
inputs.add(new Vector<>(2));
|
||||
|
||||
ArrayList<ITextComponent> filterOptions = new ArrayList<>();
|
||||
for (int row = 0; row < stages.size(); row++)
|
||||
initInputsOfRow(row);
|
||||
|
||||
filterOptions.add(new StringTextComponent("Test"));
|
||||
filterOptions.add(new StringTextComponent("Test1"));
|
||||
confirmButton =
|
||||
new IconButton(guiLeft + background.width - 33, guiTop + background.height - 24, AllIcons.I_CONFIRM);
|
||||
widgets.add(confirmButton);
|
||||
}
|
||||
|
||||
filter = new SelectionScrollInput(x, y, 77, 18)
|
||||
.forOptions(filterOptions);
|
||||
y += 20;
|
||||
radius = new ScrollInput(x, y, 30, 20);
|
||||
y += 20;
|
||||
feather = new ScrollInput(x, y, 30, 20);
|
||||
y += 20;
|
||||
fade = new ScrollInput(x, y, 30, 20);
|
||||
y += 20;
|
||||
Collections.addAll(widgets, filter, radius, feather, fade);
|
||||
public void initInputsOfRow(int row) {
|
||||
int x = guiLeft + 30;
|
||||
int y = guiTop + 18;
|
||||
int rowHeight = 22;
|
||||
|
||||
Vector<ScrollInput> rowInputs = inputs.get(row);
|
||||
rowInputs.forEach(widgets::remove);
|
||||
rowInputs.clear();
|
||||
int index = row;
|
||||
FilterStep instruction = stages.get(row);
|
||||
|
||||
ScrollInput type =
|
||||
new SelectionScrollInput(x, y + rowHeight * row, 86, 18).forOptions(ColorEffects.getOptions())
|
||||
.calling(state -> instructionUpdated(index, state))
|
||||
.setState(instruction.instruction.ordinal())
|
||||
.titled(Lang.translate("gui.chromatic_projector.filter"));
|
||||
ScrollInput value =
|
||||
new ScrollInput(x + 86 + 2, y + rowHeight * row, 28, 18).calling(state -> instruction.value = state);
|
||||
|
||||
rowInputs.add(type);
|
||||
rowInputs.add(value);
|
||||
|
||||
widgets.addAll(rowInputs);
|
||||
updateParamsOfRow(row);
|
||||
}
|
||||
|
||||
public void updateParamsOfRow(int row) {
|
||||
FilterStep instruction = stages.get(row);
|
||||
Vector<ScrollInput> rowInputs = inputs.get(row);
|
||||
ColorEffects def = instruction.instruction;
|
||||
boolean hasValue = def.hasParameter;
|
||||
|
||||
ScrollInput value = rowInputs.get(1);
|
||||
value.active = value.visible = hasValue;
|
||||
if (hasValue)
|
||||
value.withRange(0, 100)
|
||||
//.titled(Lang.translate(def.parameterKey))
|
||||
//.withShiftStep(def.shiftStep)
|
||||
.setState(instruction.value)
|
||||
.onChanged();
|
||||
|
||||
value.withStepFunction(value.standardStep());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderWindow(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
|
||||
//AllGuiTextures.PLAYER_INVENTORY.draw(matrixStack, this, guiLeft - 10, guiTop + 145);
|
||||
AllGuiTextures.PROJECTOR.draw(matrixStack, this, guiLeft, guiTop);
|
||||
// BG_TOP.draw(matrixStack, this, guiLeft + 20, guiTop);
|
||||
// BG_BOTTOM.draw(matrixStack, this, guiLeft + 20, guiTop + BG_TOP.height);
|
||||
int hFontColor = 0xD3CBBE;
|
||||
background.draw(matrixStack, this, guiLeft, guiTop);
|
||||
|
||||
for (int row = 0; row < stages.capacity(); row++) {
|
||||
AllGuiTextures toDraw = AllGuiTextures.PROJECTOR_EMPTY;
|
||||
int yOffset = toDraw.height * row;
|
||||
if (row >= stages.size()) {
|
||||
toDraw.draw(matrixStack, guiLeft, guiTop + 14 + yOffset);
|
||||
continue;
|
||||
}
|
||||
|
||||
FilterStep instruction = stages.get(row);
|
||||
ColorEffects def = instruction.instruction;
|
||||
def.background.draw(matrixStack, guiLeft, guiTop + 14 + yOffset);
|
||||
|
||||
label(matrixStack, 36, yOffset - 3, Lang.translate(def.translationKey));
|
||||
if (def.hasParameter) {
|
||||
String text = instruction.value + " %";
|
||||
int stringWidth = textRenderer.getStringWidth(text);
|
||||
label(matrixStack, 118 + (12 - stringWidth / 2), yOffset - 3, new StringTextComponent(text));
|
||||
}
|
||||
}
|
||||
|
||||
textRenderer.drawWithShadow(matrixStack, title, guiLeft - 3 + (background.width - textRenderer.getWidth(title)) / 2, guiTop + 3,
|
||||
0xffffff);
|
||||
|
||||
GuiGameElement.of(renderedItem)
|
||||
.at(guiLeft + background.width + 10, guiTop + 100, -150)
|
||||
.scale(5)
|
||||
.render(matrixStack);
|
||||
}
|
||||
|
||||
private void label(MatrixStack matrixStack, int x, int y, ITextComponent text) {
|
||||
textRenderer.drawWithShadow(matrixStack, text, guiLeft + x, guiTop + 26 + y, 0xFFFFEE);
|
||||
}
|
||||
|
||||
public void sendPacket() {
|
||||
// ListNBT serialized = Instruction.serializeAll(stages);
|
||||
// if (serialized.equals(compareTag))
|
||||
// return;
|
||||
// AllPackets.channel.sendToServer(new ConfigureSequencedGearshiftPacket(pos, serialized));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removed() {
|
||||
sendPacket();
|
||||
}
|
||||
|
||||
private void instructionUpdated(int index, int state) {
|
||||
ColorEffects newValue = ColorEffects.values()[state];
|
||||
stages.get(index).instruction = newValue;
|
||||
stages.get(index).value = 100;
|
||||
updateParamsOfRow(index);
|
||||
if (newValue == ColorEffects.END) {
|
||||
for (int i = stages.size() - 1; i > index; i--) {
|
||||
stages.remove(i);
|
||||
Vector<ScrollInput> rowInputs = inputs.get(i);
|
||||
rowInputs.forEach(widgets::remove);
|
||||
rowInputs.clear();
|
||||
}
|
||||
} else {
|
||||
if (index + 1 < stages.capacity() && index + 1 == stages.size()) {
|
||||
stages.add(new FilterStep(ColorEffects.END));
|
||||
initInputsOfRow(index + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseClicked(double x, double y, int button) {
|
||||
if (confirmButton.isHovered()) {
|
||||
Minecraft.getInstance().player.closeScreen();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.mouseClicked(x, y, button);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,40 +1,15 @@
|
|||
package com.simibubi.create.content.curiosities.projector;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Vector;
|
||||
|
||||
import com.simibubi.create.foundation.render.backend.effects.SphereFilterProgram;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
import net.minecraft.inventory.container.INamedContainerProvider;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.StringTextComponent;
|
||||
|
||||
public class ChromaticProjectorTileEntity extends TileEntity implements INamedContainerProvider {
|
||||
public class ChromaticProjectorTileEntity extends TileEntity {
|
||||
|
||||
SphereFilterProgram.FilterSphere filter;
|
||||
Vector<FilterStep> stages = FilterStep.createDefault();
|
||||
|
||||
public ChromaticProjectorTileEntity(TileEntityType<?> te) {
|
||||
super(te);
|
||||
}
|
||||
|
||||
public void sendToContainer(PacketBuffer buffer) {
|
||||
buffer.writeBlockPos(getPos());
|
||||
buffer.writeCompoundTag(getUpdateTag());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITextComponent getDisplayName() {
|
||||
return new StringTextComponent("Chromatic Projector");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Container createMenu(int p_createMenu_1_, PlayerInventory p_createMenu_2_, PlayerEntity p_createMenu_3_) {
|
||||
return new ChromaticProjectorContainer(p_createMenu_1_, p_createMenu_2_, this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package com.simibubi.create.content.curiosities.projector;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.render.backend.effects.ColorMatrices;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.util.math.vector.Matrix4f;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
|
||||
public enum ColorEffects {
|
||||
INVERT(ColorMatrices::invert),
|
||||
SEPIA(ColorMatrices::sepia),
|
||||
GRAYSCALE(ColorMatrices::grayscale),
|
||||
SATURATE(ColorMatrices::saturate),
|
||||
HUE_SHIFT(ColorMatrices::hueShift),
|
||||
END(ColorMatrices::identity, AllGuiTextures.PROJECTOR_END),
|
||||
|
||||
;
|
||||
|
||||
FilterFactory filter;
|
||||
boolean hasParameter;
|
||||
String translationKey;
|
||||
AllGuiTextures background;
|
||||
|
||||
ColorEffects(Supplier<Matrix4f> filter, AllGuiTextures background) {
|
||||
this($ -> filter.get(), false, background);
|
||||
}
|
||||
|
||||
ColorEffects(Supplier<Matrix4f> filter) {
|
||||
this($ -> filter.get(), false, AllGuiTextures.PROJECTOR_FILTER);
|
||||
}
|
||||
|
||||
ColorEffects(FilterFactory filter) {
|
||||
this(filter, true, AllGuiTextures.PROJECTOR_FILTER_STRENGTH);
|
||||
}
|
||||
|
||||
ColorEffects(FilterFactory filter, boolean hasParameter, AllGuiTextures background) {
|
||||
this.filter = filter;
|
||||
this.hasParameter = hasParameter;
|
||||
this.background = background;
|
||||
translationKey = "gui.chromatic_projector.filter." + Lang.asId(name());
|
||||
}
|
||||
|
||||
static List<ITextComponent> getOptions() {
|
||||
List<ITextComponent> options = new ArrayList<>();
|
||||
for (ColorEffects entry : values())
|
||||
options.add(Lang.translate(entry.translationKey));
|
||||
return options;
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface FilterFactory {
|
||||
Matrix4f create(float param);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.simibubi.create.content.curiosities.projector;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
public class FilterStep {
|
||||
|
||||
ColorEffects instruction;
|
||||
int value;
|
||||
|
||||
public FilterStep(ColorEffects instruction) {
|
||||
this.instruction = instruction;
|
||||
}
|
||||
|
||||
public FilterStep(ColorEffects instruction, int value) {
|
||||
this.instruction = instruction;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static Vector<FilterStep> createDefault() {
|
||||
Vector<FilterStep> instructions = new Vector<>(ChromaticProjectorScreen.MAX_STEPS);
|
||||
instructions.add(new FilterStep(ColorEffects.SEPIA, 100));
|
||||
instructions.add(new FilterStep(ColorEffects.END));
|
||||
return instructions;
|
||||
}
|
||||
}
|
|
@ -56,7 +56,11 @@ public enum AllGuiTextures implements IScreenRenderable {
|
|||
SEQUENCER_EMPTY("sequencer.png", 0, 102, 162, 22),
|
||||
SEQUENCER_AWAIT("sequencer.png", 0, 160, 162, 22),
|
||||
|
||||
PROJECTOR("projector.png", 173, 159),
|
||||
PROJECTOR("projector.png", 173, 194),
|
||||
PROJECTOR_FILTER_STRENGTH("projector.png", 0, 14, 162, 22),
|
||||
PROJECTOR_FILTER("projector.png", 0, 36, 162, 22),
|
||||
PROJECTOR_END("projector.png", 0, 58, 162, 22),
|
||||
PROJECTOR_EMPTY("projector.png", 0, 80, 162, 22),
|
||||
|
||||
// JEI
|
||||
JEI_SLOT("jei/widgets.png", 18, 18),
|
||||
|
|
|
@ -72,7 +72,7 @@ public class ColorMatrices {
|
|||
}
|
||||
|
||||
// https://stackoverflow.com/a/8510751
|
||||
public static Matrix4f hueShiftRGB(float rot) {
|
||||
public static Matrix4f hueShift(float rot) {
|
||||
Matrix4f mat = new Matrix4f();
|
||||
|
||||
mat.loadIdentity();
|
||||
|
@ -91,4 +91,10 @@ public class ColorMatrices {
|
|||
|
||||
return mat;
|
||||
}
|
||||
|
||||
public static Matrix4f identity() {
|
||||
Matrix4f mat = new Matrix4f();
|
||||
mat.loadIdentity();
|
||||
return mat;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -132,18 +132,30 @@ public class EffectsHandler {
|
|||
.setDensity(1.3f)
|
||||
.setFilter(ColorMatrices.grayscale()));
|
||||
|
||||
Matrix4f test = ColorMatrices.sepia(1f);
|
||||
program.addSphere(new SphereFilterProgram.FilterSphere()
|
||||
.setCenter(new Vector3d(852.5, 70, -203.5).subtract(cameraPos))
|
||||
.setRadius(20f)
|
||||
.setFeather(3f)
|
||||
.setFade(1f)
|
||||
.setDensity(1.3f)
|
||||
.setFilter(ColorMatrices.sepia(1f)));
|
||||
|
||||
// Matrix4f test = ColorMatrices.sepia(1f);
|
||||
//
|
||||
//
|
||||
// test.multiply(ColorMatrices.invert());
|
||||
//
|
||||
// Matrix4f darken = new Matrix4f();
|
||||
// darken.loadIdentity();
|
||||
// darken.multiply(0.7f);
|
||||
// darken.a03 = 0.7f;
|
||||
// darken.a13 = 0.7f;
|
||||
// darken.a23 = 0.7f;
|
||||
// test.multiply(darken);
|
||||
|
||||
test.multiply(ColorMatrices.invert());
|
||||
Matrix4f test = ColorMatrices.saturate(2f);
|
||||
|
||||
Matrix4f darken = new Matrix4f();
|
||||
darken.loadIdentity();
|
||||
darken.multiply(0.7f);
|
||||
darken.a03 = 0.7f;
|
||||
darken.a13 = 0.7f;
|
||||
darken.a23 = 0.7f;
|
||||
test.multiply(darken);
|
||||
test.multiply(ColorMatrices.hueShift(120f));
|
||||
|
||||
program.addSphere(new SphereFilterProgram.FilterSphere()
|
||||
.setCenter(new Vector3d(858.5, 88, -259.5).subtract(cameraPos))
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3 KiB |
Loading…
Reference in a new issue