Skip to content

Commit 0aaec99

Browse files
authored
create NamedRegistry, move some logic to be INamed-based (#144)
* move a number of things to INamed instead of IScriptReloadable * move name logic to NamedRegistry * remove now redundant info for ForgeRegistryWrapper * simplify NamedRegistry * make Thaumcraft Arcane Workbench use NR instead of VR * make Vanilla stuff used NamedRegistry * make reloading only happen once instead of every alias * fix oredict * make empty onReload instead use NamedRegistry * avoid that one turkish casing bug for reviewer
1 parent 4f9916d commit 0aaec99

36 files changed

+132
-155
lines changed

src/main/java/com/cleanroommc/groovyscript/api/INamed.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,10 @@ default String getName() {
1313
}
1414
return aliases.iterator().next();
1515
}
16+
17+
@GroovyBlacklist
18+
default boolean isEnabled() {
19+
return true;
20+
}
21+
1622
}

src/main/java/com/cleanroommc/groovyscript/api/IScriptReloadable.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,4 @@ public interface IScriptReloadable extends INamed {
1212
@ApiStatus.OverrideOnly
1313
void afterScriptLoad();
1414

15-
@GroovyBlacklist
16-
default boolean isEnabled() {
17-
return true;
18-
}
19-
2015
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.cleanroommc.groovyscript.GroovyScript;
44
import com.cleanroommc.groovyscript.api.GroovyLog;
5+
import com.cleanroommc.groovyscript.registry.NamedRegistry;
56
import net.minecraft.block.Block;
67
import net.minecraft.block.material.Material;
78
import net.minecraft.creativetab.CreativeTabs;
@@ -13,7 +14,7 @@
1314
import org.jetbrains.annotations.NotNull;
1415
import org.jetbrains.annotations.Nullable;
1516

16-
public class Content {
17+
public class Content extends NamedRegistry {
1718

1819
public CreativeTabs defaultTab;
1920

src/main/java/com/cleanroommc/groovyscript/compat/inworldcrafting/InWorldCrafting.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
import com.cleanroommc.groovyscript.api.GroovyBlacklist;
44
import com.cleanroommc.groovyscript.api.IScriptReloadable;
5+
import com.cleanroommc.groovyscript.registry.NamedRegistry;
56
import net.minecraft.entity.item.EntityItem;
67
import net.minecraft.item.ItemStack;
78
import net.minecraft.util.math.BlockPos;
89
import net.minecraft.world.World;
910

10-
import java.util.Collection;
11-
import java.util.Collections;
12-
13-
public class InWorldCrafting implements IScriptReloadable {
11+
public class InWorldCrafting extends NamedRegistry implements IScriptReloadable {
1412

1513
public final FluidToFluid fluidToFluid = new FluidToFluid();
1614
public final FluidToItem fluidToItem = new FluidToItem();
@@ -41,11 +39,6 @@ public void afterScriptLoad() {
4139
this.pistonPush.afterScriptLoad();
4240
}
4341

44-
@Override
45-
public Collection<String> getAliases() {
46-
return Collections.emptyList();
47-
}
48-
4942
public static EntityItem spawnItem(World world, BlockPos pos, ItemStack item) {
5043
EntityItem entityItem = new EntityItem(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, item);
5144
world.spawnEntity(entityItem);

src/main/java/com/cleanroommc/groovyscript/compat/loot/Loot.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.cleanroommc.groovyscript.api.GroovyBlacklist;
44
import com.cleanroommc.groovyscript.api.IScriptReloadable;
5+
import com.cleanroommc.groovyscript.registry.NamedRegistry;
56
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
67
import net.minecraft.server.MinecraftServer;
78
import net.minecraft.util.ResourceLocation;
@@ -10,11 +11,9 @@
1011
import net.minecraftforge.fml.common.FMLCommonHandler;
1112
import org.jetbrains.annotations.ApiStatus;
1213

13-
import java.util.Collection;
14-
import java.util.Collections;
1514
import java.util.Map;
1615

17-
public class Loot implements IScriptReloadable {
16+
public class Loot extends NamedRegistry implements IScriptReloadable {
1817

1918
public Map<ResourceLocation, LootTable> tables = new Object2ObjectOpenHashMap<>();
2019

@@ -43,8 +42,4 @@ public void afterScriptLoad() {
4342
}
4443
}
4544

46-
@Override
47-
public Collection<String> getAliases() {
48-
return Collections.emptyList();
49-
}
5045
}

src/main/java/com/cleanroommc/groovyscript/compat/mods/ModPropertyContainer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,26 @@
1111

1212
public class ModPropertyContainer implements IDynamicGroovyProperty {
1313

14-
private final Map<String, IScriptReloadable> registries;
14+
private final Map<String, INamed> registries;
1515

1616
public ModPropertyContainer() {
1717
this.registries = new Object2ObjectOpenHashMap<>();
1818
((IVirtualizedRegistrar) this::addRegistry).addFieldsOf(this);
1919
}
2020

21-
protected void addRegistry(IScriptReloadable registry) {
21+
protected void addRegistry(INamed registry) {
2222
for (String alias : registry.getAliases()) {
2323
this.registries.put(alias, registry);
2424
}
2525
}
2626

27-
public Collection<IScriptReloadable> getRegistries() {
27+
public Collection<INamed> getRegistries() {
2828
return registries.values();
2929
}
3030

3131
@Override
3232
public @Nullable Object getProperty(String name) {
33-
IScriptReloadable registry = registries.get(name);
33+
INamed registry = registries.get(name);
3434
if (registry == null) {
3535
GroovyLog.get().error("Attempted to access registry {}, but could not find a registry with that name", name);
3636
return null;

src/main/java/com/cleanroommc/groovyscript/compat/mods/aetherlegacy/Accessory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.cleanroommc.groovyscript.api.GroovyLog;
44
import com.cleanroommc.groovyscript.api.IIngredient;
55
import com.cleanroommc.groovyscript.api.documentation.annotations.*;
6-
import com.cleanroommc.groovyscript.helper.Alias;
76
import com.cleanroommc.groovyscript.helper.EnumHelper;
87
import com.cleanroommc.groovyscript.helper.recipe.AbstractRecipeBuilder;
98
import com.cleanroommc.groovyscript.registry.ForgeRegistryWrapper;
@@ -19,7 +18,7 @@
1918
public class Accessory extends ForgeRegistryWrapper<AetherAccessory> {
2019

2120
public Accessory() {
22-
super(GameRegistry.findRegistry(AetherAccessory.class), Alias.generateOfClass(Accessory.class));
21+
super(GameRegistry.findRegistry(AetherAccessory.class));
2322
}
2423

2524
@MethodDescription(type = MethodDescription.Type.ADDITION)

src/main/java/com/cleanroommc/groovyscript/compat/mods/aetherlegacy/Enchanter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.cleanroommc.groovyscript.api.GroovyLog;
44
import com.cleanroommc.groovyscript.api.IIngredient;
55
import com.cleanroommc.groovyscript.api.documentation.annotations.*;
6-
import com.cleanroommc.groovyscript.helper.Alias;
76
import com.cleanroommc.groovyscript.helper.recipe.AbstractRecipeBuilder;
87
import com.cleanroommc.groovyscript.registry.ForgeRegistryWrapper;
98
import com.gildedgames.the_aether.api.enchantments.AetherEnchantment;
@@ -15,7 +14,7 @@
1514
public class Enchanter extends ForgeRegistryWrapper<AetherEnchantment> {
1615

1716
public Enchanter() {
18-
super(GameRegistry.findRegistry(AetherEnchantment.class), Alias.generateOfClass(Enchanter.class));
17+
super(GameRegistry.findRegistry(AetherEnchantment.class));
1918
}
2019

2120
@RecipeBuilderDescription(example = @Example(".input(item('minecraft:clay')).output(item('minecraft:diamond')).time(200)"))

src/main/java/com/cleanroommc/groovyscript/compat/mods/aetherlegacy/EnchanterFuel.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.cleanroommc.groovyscript.api.documentation.annotations.Example;
55
import com.cleanroommc.groovyscript.api.documentation.annotations.MethodDescription;
66
import com.cleanroommc.groovyscript.api.documentation.annotations.RegistryDescription;
7-
import com.cleanroommc.groovyscript.helper.Alias;
87
import com.cleanroommc.groovyscript.registry.ForgeRegistryWrapper;
98
import com.gildedgames.the_aether.api.enchantments.AetherEnchantmentFuel;
109
import net.minecraft.item.ItemStack;
@@ -14,7 +13,7 @@
1413
public class EnchanterFuel extends ForgeRegistryWrapper<AetherEnchantmentFuel> {
1514

1615
public EnchanterFuel() {
17-
super(GameRegistry.findRegistry(AetherEnchantmentFuel.class), Alias.generateOfClass(EnchanterFuel.class));
16+
super(GameRegistry.findRegistry(AetherEnchantmentFuel.class));
1817
}
1918

2019
@MethodDescription(type = MethodDescription.Type.ADDITION, example = @Example("item('minecraft:blaze_rod'), 1000"))

src/main/java/com/cleanroommc/groovyscript/compat/mods/aetherlegacy/Freezer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.cleanroommc.groovyscript.api.GroovyLog;
44
import com.cleanroommc.groovyscript.api.IIngredient;
55
import com.cleanroommc.groovyscript.api.documentation.annotations.*;
6-
import com.cleanroommc.groovyscript.helper.Alias;
76
import com.cleanroommc.groovyscript.helper.recipe.AbstractRecipeBuilder;
87
import com.cleanroommc.groovyscript.registry.ForgeRegistryWrapper;
98
import com.gildedgames.the_aether.api.freezables.AetherFreezable;
@@ -15,7 +14,7 @@
1514
public class Freezer extends ForgeRegistryWrapper<AetherFreezable> {
1615

1716
public Freezer() {
18-
super(GameRegistry.findRegistry(AetherFreezable.class), Alias.generateOfClass(Freezer.class));
17+
super(GameRegistry.findRegistry(AetherFreezable.class));
1918
}
2019

2120
@RecipeBuilderDescription(example = @Example(".input(item('minecraft:clay')).output(item('minecraft:dirt')).time(200)"))

0 commit comments

Comments
 (0)