Skip to content

Commit dc89af7

Browse files
committed
2.0.7 - Pattern schematic and quill item
1 parent ac507ee commit dc89af7

File tree

16 files changed

+138
-20
lines changed

16 files changed

+138
-20
lines changed

build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,9 @@ publishMods {
274274
requires("create")
275275
}
276276

277-
discord("discordUniversal") {
278-
webhookUrl = TOKENS.get("DISCORD_WEBHOOK")
279-
username = "New Version Announcement | Create: Pattern Schematics"
280-
content = "\n# Create: Pattern Schematics has been updated to $mod_version for $minecraft_version ($forgeEmoji)\n " + changelogText
281-
}
277+
// discord("discordUniversal") {
278+
// webhookUrl = TOKENS.get("DISCORD_WEBHOOK")
279+
// username = "New Version Announcement | Create: Pattern Schematics"
280+
println("\n# Create: Pattern Schematics has been updated to $mod_version for $minecraft_version ($forgeEmoji)\n " + changelogText)
281+
// }
282282
}

changelog.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,6 @@
5353
- Fixed misalignment in the schematic table menu
5454
1.21.1-2.0.6: |
5555
- Added ru_ru translation for 1.21.1 (1.20.1 coming soon)
56+
1.21.1-2.0.7: |
57+
- Added 'Pattern Schematic and Quill' item
5658
...

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ mod_name=Create: Pattern Schematics
3434
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
3535
mod_license=All Rights Reserved
3636
# The mod version. See https://semver.org/
37-
mod_version=2.0.6
37+
mod_version=2.0.7
3838
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
3939
# This should match the base package used for the mod sources.
4040
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
// 1.21.1 2025-03-15T09:36:44.0186008 Registrate Provider for create_pattern_schematics [Registries, Data Maps, Recipes, Advancements, Loot Tables, Tags (enchantments), Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), generic_server_provider, Blockstates, Item models, Lang (en_us/en_ud), generic_client_provider]
2-
2bcf99344dc07aa391877323dcc6e25700681645 assets/create_pattern_schematics/lang/en_ud.json
3-
9a552aaa4870e6f168a4a9800aed5c2617383452 assets/create_pattern_schematics/lang/en_us.json
1+
// 1.21.1 2025-05-24T16:52:05.4827583 Registrate Provider for create_pattern_schematics [Registries, Data Maps, Recipes, Advancements, Loot Tables, Tags (enchantments), Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), generic_server_provider, Blockstates, Item models, Lang (en_us/en_ud), generic_client_provider]
2+
c927e24de03aee4a6d858c5d717655bb3f0083bd assets/create_pattern_schematics/lang/en_ud.json
3+
2c4669a4910478bf50434719f18be71ef73db5e4 assets/create_pattern_schematics/lang/en_us.json
44
19e25b53bb643c63106b1f83e2f1fe5a6ac63f13 assets/create_pattern_schematics/models/item/empty_pattern_schematic.json
55
ef2d06ece9923cc75b5e3dc3070df2808f1cdb74 assets/create_pattern_schematics/models/item/pattern_schematic.json
6+
8e73a6fcd1c4904d0f0a3be5be81d70c1e8e2684 assets/create_pattern_schematics/models/item/pattern_schematic_and_quill.json

src/generated/resources/assets/create_pattern_schematics/lang/en_ud.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,11 @@
2424
"item.create_pattern_schematics.empty_pattern_schematic": "ɔıʇɐɯǝɥɔS uɹǝʇʇɐԀ ʎʇdɯƎ",
2525
"item.create_pattern_schematics.empty_pattern_schematic.tooltip.summary": "˙sǝɯıʇ ǝןdıʇןnɯ ‾ubısǝp ɐ ʇɐǝdǝɹ‾ oʇ suouuɐɔıʇɐɯǝɥɔs puɐ suoıʇdɐɹʇuoɔ sʍoןןɐ ɥɔıɥʍ ‾ɔıʇɐɯǝɥɔs s,ǝʇɐǝɹƆ ɟo uoısɹǝʌ pǝpuǝʇxǝ‾ uɐ ǝʞɐɯ oʇ uǝʇʇıɹʍ ǝq uɐƆ",
2626
"item.create_pattern_schematics.pattern_schematic": "ɔıʇɐɯǝɥɔS uɹǝʇʇɐԀ",
27-
"item.create_pattern_schematics.pattern_schematic.tooltip.summary": "˙sǝɯıʇ ǝןdıʇןnɯ ‾ubısǝp ɐ ʇɐǝdǝɹ‾ oʇ suouuɐɔıʇɐɯǝɥɔs puɐ suoıʇdɐɹʇuoɔ sʍoןןɐ ɥɔıɥʍ ‾ɔıʇɐɯǝɥɔs s,ǝʇɐǝɹƆ ɟo uoısɹǝʌ pǝpuǝʇxǝ‾ uⱯ"
27+
"item.create_pattern_schematics.pattern_schematic.tooltip.summary": "˙sǝɯıʇ ǝןdıʇןnɯ ‾ubısǝp ɐ ʇɐǝdǝɹ‾ oʇ suouuɐɔıʇɐɯǝɥɔs puɐ suoıʇdɐɹʇuoɔ sʍoןןɐ ɥɔıɥʍ ‾ɔıʇɐɯǝɥɔs s,ǝʇɐǝɹƆ ɟo uoısɹǝʌ pǝpuǝʇxǝ‾ uⱯ",
28+
"item.create_pattern_schematics.pattern_schematic_and_quill": "ןןınὉ puⱯ ɔıʇɐɯǝɥɔS uɹǝʇʇɐԀ",
29+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.behaviour1": "˙ɹıɐ-pıɯ suoıʇɐɔoן ʇɔǝןǝs oʇ ןןoɹɔS puɐ ‾ןɹʇƆ‾ pןoH ˙‾ʞɔıןƆ-ᴚ‾ buısn ‾sʇuıod ɹǝuɹoɔ‾ oʍʇ ʇɔǝןǝS",
30+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.behaviour2": "˙ǝʌɐS oʇ uıɐbɐ ʞɔıןƆ-ᴚ uǝɥʇ 'ǝzıs ǝɥʇ ʇsnظpɐ oʇ sǝɔɐɟ ǝɥʇ uo ‾ןןoɹɔS-ןɹʇƆ‾",
31+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.condition1": "uoıʇɔǝןǝs ɐ buıʇɐǝɹƆ",
32+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.condition2": "buıʌɐS puɐ buıʇsnظpⱯ",
33+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.summary": "˙‾ɔıʇɐɯǝɥɔs uɹǝʇʇɐd‾ ɐ oʇuı ʎןǝʇɐıpǝɯɯı pǝʇuıɹd ǝq ɹo ‾ǝןıɟ ʇqu˙‾ ɐ oʇ pןɹoʍ ɹnoʎ uı ‾ǝɹnʇɔnɹʇS ɐ buıʌɐs‾ ɹoɟ pǝs∩"
2834
}

src/generated/resources/assets/create_pattern_schematics/lang/en_us.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,11 @@
2424
"item.create_pattern_schematics.empty_pattern_schematic": "Empty Pattern Schematic",
2525
"item.create_pattern_schematics.empty_pattern_schematic.tooltip.summary": "Can be written to make an _extended version of Create's schematic_ which allows contraptions and schematicannons to _repeat a design_ multiple times.",
2626
"item.create_pattern_schematics.pattern_schematic": "Pattern Schematic",
27-
"item.create_pattern_schematics.pattern_schematic.tooltip.summary": "An _extended version of Create's schematic_ which allows contraptions and schematicannons to _repeat a design_ multiple times."
27+
"item.create_pattern_schematics.pattern_schematic.tooltip.summary": "An _extended version of Create's schematic_ which allows contraptions and schematicannons to _repeat a design_ multiple times.",
28+
"item.create_pattern_schematics.pattern_schematic_and_quill": "Pattern Schematic And Quill",
29+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.behaviour1": "Select two _corner points_ using _R-Click_. Hold _Ctrl_ and Scroll to select locations mid-air.",
30+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.behaviour2": "_Ctrl-Scroll_ on the faces to adjust the size, then R-Click again to Save.",
31+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.condition1": "Creating a selection",
32+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.condition2": "Adjusting and Saving",
33+
"item.create_pattern_schematics.pattern_schematic_and_quill.tooltip.summary": "Used for _saving a Structure_ in your world to a _.nbt file_ or be printed immediately into a _pattern schematic_."
2834
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "minecraft:item/generated",
3+
"textures": {
4+
"layer0": "create_pattern_schematics:item/pattern_schematic_and_quill"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.cak.pattern_schematics.forge.mixin.schematic_and_quill;
2+
3+
import com.cak.pattern_schematics.registry.PatternSchematicsRegistry;
4+
import com.simibubi.create.AllItems;
5+
import com.simibubi.create.content.schematics.client.SchematicAndQuillHandler;
6+
import net.minecraft.client.Minecraft;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
12+
13+
@Mixin(SchematicAndQuillHandler.class)
14+
public abstract class SchematicAndQuillHandlerMixin {
15+
16+
@Shadow protected abstract boolean isPresent();
17+
18+
@Inject(method = "isActive", at = @At("RETURN"), cancellable = true)
19+
private void isActive(CallbackInfoReturnable<Boolean> cir) {
20+
cir.setReturnValue(cir.getReturnValue() || isPresent() && PatternSchematicsRegistry.PATTERN_SCHEMATIC_AND_QUILL.isIn(Minecraft.getInstance().player.getMainHandItem()));
21+
}
22+
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.cak.pattern_schematics.forge.mixin.schematic_and_quill;
2+
3+
import com.cak.pattern_schematics.content.item.PatternSchematicItem;
4+
import com.cak.pattern_schematics.registry.PatternSchematicsRegistry;
5+
import com.simibubi.create.content.schematics.SchematicItem;
6+
import com.simibubi.create.content.schematics.ServerSchematicLoader;
7+
import com.tterrag.registrate.util.entry.ItemEntry;
8+
import net.minecraft.world.item.ItemStack;
9+
import net.minecraft.world.level.Level;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Unique;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.Redirect;
14+
15+
@Mixin(ServerSchematicLoader.class)
16+
public class ServerSchematicLoaderMixin {
17+
18+
@Unique
19+
private static boolean pattern_Schematics$isHandlingInstantPatternSchematic = false;
20+
21+
@Redirect(method = "handleInstantSchematic", at = @At(value = "INVOKE", target = "Lcom/tterrag/registrate/util/entry/ItemEntry;isIn(Lnet/minecraft/world/item/ItemStack;)Z"))
22+
public boolean handleInstantSchematic_isIn(ItemEntry<?> instance, ItemStack itemStack) {
23+
pattern_Schematics$isHandlingInstantPatternSchematic = PatternSchematicsRegistry.PATTERN_SCHEMATIC_AND_QUILL.isIn(itemStack);
24+
return instance.isIn(itemStack) || PatternSchematicsRegistry.PATTERN_SCHEMATIC_AND_QUILL.isIn(itemStack);
25+
}
26+
27+
@Redirect(method = "handleInstantSchematic", at = @At(value = "INVOKE", target = "Lcom/simibubi/create/content/schematics/SchematicItem;create(Lnet/minecraft/world/level/Level;Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/world/item/ItemStack;"))
28+
public ItemStack handleInstantSchematic_create(Level level, String schematic, String owner) {
29+
if (pattern_Schematics$isHandlingInstantPatternSchematic) {
30+
return PatternSchematicItem.create(level, schematic, owner);
31+
}
32+
return SchematicItem.create(level, schematic, owner);
33+
}
34+
35+
36+
37+
}

src/main/java/com/cak/pattern_schematics/forge/mixin/temp_platform/CreateCreativeModeTabMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class CreateCreativeModeTabMixin {
1414
@Redirect(method = "outputAll", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/CreativeModeTab$Output;accept(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/CreativeModeTab$TabVisibility;)V"))
1515
private static void addAdditionalItemInject(CreativeModeTab.Output instance, ItemStack itemStack, CreativeModeTab.TabVisibility tabVisibility) {
1616
Item itemToAdd = itemStack.getItem();
17-
//Ensure execution order, add the instance then add otherg
17+
//Ensure execution order, add the instance then add other
1818
if (
1919
PatternSchematicsTabInsertions.getAllInsertsAfter()
2020
.containsKey(itemToAdd)

0 commit comments

Comments
 (0)