Skip to content

Commit 2c59bc4

Browse files
committed
Refine projection color and client config
1 parent dc33564 commit 2c59bc4

File tree

5 files changed

+55
-4
lines changed

5 files changed

+55
-4
lines changed

assets/colors.gif

1.42 MB
Loading

src/main/java/com/robotgryphon/compactcrafting/CompactCrafting.java

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

33
import com.robotgryphon.compactcrafting.client.ClientSetup;
44
import com.robotgryphon.compactcrafting.client.render.RenderTickCounter;
5+
import com.robotgryphon.compactcrafting.config.ClientConfig;
56
import com.robotgryphon.compactcrafting.core.Registration;
67
import com.robotgryphon.compactcrafting.recipes.json.MiniaturizationPatternLoader;
78
import net.minecraft.block.Blocks;
@@ -11,7 +12,9 @@
1112
import net.minecraftforge.common.MinecraftForge;
1213
import net.minecraftforge.event.AddReloadListenerEvent;
1314
import net.minecraftforge.eventbus.api.IEventBus;
15+
import net.minecraftforge.fml.ModLoadingContext;
1416
import net.minecraftforge.fml.common.Mod;
17+
import net.minecraftforge.fml.config.ModConfig;
1518
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
1619
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
1720
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@@ -51,9 +54,10 @@ public CompactCrafting() {
5154
forgeBus.register(ClientSetup.class);
5255

5356

54-
Registration.init();
55-
57+
ModLoadingContext mlCtx = ModLoadingContext.get();
58+
mlCtx.registerConfig(ModConfig.Type.CLIENT, ClientConfig.CONFIG);
5659

60+
Registration.init();
5761
}
5862

5963
private void setup(final FMLCommonSetupEvent event)

src/main/java/com/robotgryphon/compactcrafting/blocks/FieldProjectorTile.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.robotgryphon.compactcrafting.blocks;
22

3+
import com.robotgryphon.compactcrafting.config.ClientConfig;
34
import com.robotgryphon.compactcrafting.core.EnumProjectorColorType;
45
import com.robotgryphon.compactcrafting.core.Registration;
56
import com.robotgryphon.compactcrafting.crafting.CraftingHelper;
@@ -41,7 +42,8 @@ public FieldProjectorTile() {
4142
}
4243

4344
public Color getProjectionColor(EnumProjectorColorType type) {
44-
Color base = new Color(255, 106, 0, 100);
45+
Color base = ClientConfig.projectorColor;
46+
new Color(255, 106, 0, 100);
4547
// Color base = Color.red.brighter();
4648
int red = base.getRed();
4749
int green = base.getGreen();
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.robotgryphon.compactcrafting.config;
2+
3+
import com.robotgryphon.compactcrafting.CompactCrafting;
4+
import net.minecraftforge.common.ForgeConfigSpec;
5+
import net.minecraftforge.eventbus.api.SubscribeEvent;
6+
import net.minecraftforge.fml.common.Mod;
7+
import net.minecraftforge.fml.config.ModConfig;
8+
9+
import java.awt.*;
10+
11+
@Mod.EventBusSubscriber(modid = CompactCrafting.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
12+
public class ClientConfig {
13+
14+
public static ForgeConfigSpec CONFIG;
15+
16+
private static ForgeConfigSpec.ConfigValue<String> PROJECTOR_COLOR;
17+
public static Color projectorColor = Color.white;
18+
19+
static {
20+
generateConfig();
21+
}
22+
23+
private static void generateConfig() {
24+
ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
25+
26+
builder
27+
.comment("Projector Settings")
28+
.push("projectors");
29+
30+
PROJECTOR_COLOR = builder
31+
.comment("The color for the projector fields. (HEX format, default #FF6A00)")
32+
.define("projectorColor", "#FF6A00");
33+
34+
builder.pop();
35+
36+
CONFIG = builder.build();
37+
}
38+
39+
@SubscribeEvent
40+
public static void onLoad(final ModConfig.ModConfigEvent configEvent) {
41+
projectorColor = Color.decode(PROJECTOR_COLOR.get());
42+
}
43+
}

src/main/java/com/robotgryphon/compactcrafting/recipes/json/LayerDeserializer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.robotgryphon.compactcrafting.recipes.json;
22

33
import com.google.gson.*;
4+
import com.robotgryphon.compactcrafting.CompactCrafting;
45
import com.robotgryphon.compactcrafting.recipes.json.loaders.FilledLayerLoader;
56
import com.robotgryphon.compactcrafting.recipes.json.loaders.HollowLayerLoader;
67
import com.robotgryphon.compactcrafting.recipes.json.loaders.ILayerLoader;
@@ -42,7 +43,8 @@ public IRecipeLayer deserialize(JsonElement json, Type typeOfT, JsonDeserializat
4243
break;
4344

4445
default:
45-
throw new JsonParseException("Unknown layer type '" + type + "'");
46+
CompactCrafting.LOGGER.error("Unknown layer type '" + type + "'");
47+
return null;
4648
}
4749

4850
try {

0 commit comments

Comments
 (0)