Skip to content

Commit 343acef

Browse files
authored
Improve Creative Tab code (#317)
* update creative tab code * fix dev resource locatalization names * disable debug_factory_tech
1 parent c770670 commit 343acef

File tree

4 files changed

+38
-17
lines changed

4 files changed

+38
-17
lines changed

examples/assets/groovyscriptdev/lang/en_us.lang

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
itemGroup.groovyscript.example_creative_tab=GroovyScript Creative Tab
2-
item.placeholdername.heartofauniverse.name=Heart of the Universe
3-
item.placeholdername.clay_2.name=If clay is so good...
4-
item.placeholdername.clay_3.name=Enchanted Clay
5-
item.placeholdername.prodigy_stick.name=Prodigy Stick
6-
item.placeholdername.snack.name=Snack
7-
tile.placeholdername.generic_block.name=Generic Block
8-
tile.placeholdername.dragon_egg_lamp.name=Dragon Egg Lamp
2+
item.groovyscriptdev.heartofauniverse.name=Heart of the Universe
3+
item.groovyscriptdev.clay_2.name=If clay is so good...
4+
item.groovyscriptdev.clay_3.name=Enchanted Clay
5+
item.groovyscriptdev.prodigy_stick.name=Prodigy Stick
6+
item.groovyscriptdev.snack.name=Snack
7+
tile.groovyscriptdev.generic_block.name=Generic Block
8+
tile.groovyscriptdev.dragon_egg_lamp.name=Dragon Egg Lamp
99

10-
fluid.placeholdername.amongium=Amongium
10+
fluid.groovyscriptdev.amongium.name=Amongium
1111

1212
# For the prodigy tech example
1313
enchantment.level.11=XI

examples/preInit/vanilla.groovy

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,17 @@ import net.minecraft.world.IBlockAccess
1616
// '[itemname].png.mcmeta' to create an animated file.
1717
// A file will be created in 'assets/groovyscriptdev/models/item/' called '[itemname].json' and point to this location in textures.
1818

19-
def HOAU = content.createItem('heartofauniverse') // Set item name at 'item.[itemname].name=[desired name]'
20-
.setRarity(EnumRarity.EPIC) // Optional IRarity, sets the default text formatting (default none)
21-
.setMaxStackSize(1) // Optional int, sets the max stack size (default 64)
22-
// Note: by not running '.register()' this item will not be created yet. This is done so we can set the creative tab correctly.
23-
2419
// Create the creative tab, using the not-yet-registered item
25-
def tab = content.createCreativeTab('groovyscript.example_creative_tab', HOAU)
20+
def tab = content.createCreativeTab('groovyscript.example_creative_tab', _ -> item('groovyscriptdev:heartofauniverse'))
2621

2722
// When registering items, this will add them to the given creative tab without having to manually do so.
2823
content.setDefaultCreativeTab(tab)
2924

30-
// Now, we register to HOAU item.
31-
HOAU.register()
25+
// create the creative tab
26+
content.createItem('heartofauniverse') // Set item name at 'item.[itemname].name=[desired name]'
27+
.setRarity(EnumRarity.EPIC) // Optional IRarity, sets the default text formatting (default none)
28+
.setMaxStackSize(1) // Optional int, sets the max stack size (default 64)
29+
.register()
3230

3331

3432
// Create an item at the location 'groovyscriptdev:clay_2'

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ debug_extended_crafting = false
5757
debug_extra_botany = false
5858
debug_extra_utilities_2 = false
5959

60-
debug_factory_tech = true
60+
debug_factory_tech = false
6161
debug_forestry = false
6262
debug_future_mc = false
6363

src/main/java/com/cleanroommc/groovyscript/compat/content/Content.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.cleanroommc.groovyscript.GroovyScript;
44
import com.cleanroommc.groovyscript.api.GroovyLog;
55
import com.cleanroommc.groovyscript.registry.NamedRegistry;
6+
import groovy.lang.Closure;
67
import net.minecraft.block.Block;
78
import net.minecraft.block.material.Material;
89
import net.minecraft.creativetab.CreativeTabs;
@@ -14,6 +15,8 @@
1415
import org.jetbrains.annotations.NotNull;
1516
import org.jetbrains.annotations.Nullable;
1617

18+
import java.util.function.Supplier;
19+
1720
public class Content extends NamedRegistry {
1821

1922
public CreativeTabs defaultTab;
@@ -68,6 +71,26 @@ public CreativeTabs createCreativeTab(String name, ItemStack icon) {
6871
};
6972
}
7073

74+
public CreativeTabs createCreativeTab(String name, Supplier<ItemStack> icon) {
75+
return new CreativeTabs(name) {
76+
77+
@Override
78+
public @NotNull ItemStack createIcon() {
79+
return icon.get().copy();
80+
}
81+
};
82+
}
83+
84+
public CreativeTabs createCreativeTab(String name, Closure<ItemStack> icon) {
85+
return new CreativeTabs(name) {
86+
87+
@Override
88+
public @NotNull ItemStack createIcon() {
89+
return icon.call().copy();
90+
}
91+
};
92+
}
93+
7194
public CreativeTabs createCreativeTab(String name, Item icon) {
7295
return createCreativeTab(name, new ItemStack(icon));
7396
}

0 commit comments

Comments
 (0)