Skip to content

Commit 0847d94

Browse files
adding a better water model
1 parent 522f37f commit 0847d94

20 files changed

+1675
-21
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ run
2525
forge*changelog.txt
2626

2727
# personnal info
28-
.env
28+
.env
29+
/logs/

build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ repositories {
116116
name = "Modrinth"
117117
url = "https://api.modrinth.com/maven"
118118
}
119-
119+
maven {
120+
url = "https://mvnrepository.com"
121+
}
120122
//curios
121123
maven {
122124
url = "https://maven.theillusivec4.top/"
@@ -154,7 +156,8 @@ dependencies {
154156
//unit test tool
155157
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0'
156158
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0'
157-
159+
//x chart to plot things
160+
implementation("org.knowm.xchart:xchart:3.2.2")
158161

159162
}
160163
mixin {
@@ -204,6 +207,7 @@ tasks.named('jar', Jar).configure {
204207

205208
tasks.test {
206209
useJUnitPlatform()
210+
debug = true;
207211
}
208212
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing:
209213
// tasks.named('publish').configure {
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package com.rae.formicapi;
2+
3+
import com.rae.formicapi.units.Pressure;
4+
import com.rae.formicapi.units.RadiationFlux;
5+
import com.rae.formicapi.units.Temperature;
6+
import com.rae.formicapi.config.FormicAPIConfigs;
7+
import com.simibubi.create.foundation.utility.CreateLang;
8+
import net.createmod.catnip.lang.Lang;
9+
import net.createmod.catnip.lang.LangBuilder;
10+
import net.createmod.catnip.lang.LangNumberFormat;
11+
import net.minecraft.network.chat.Component;
12+
import net.minecraft.network.chat.MutableComponent;
13+
import net.minecraft.world.item.ItemStack;
14+
import net.minecraft.world.level.block.state.BlockState;
15+
import net.minecraftforge.fluids.FluidStack;
16+
17+
import java.util.ArrayList;
18+
import java.util.List;
19+
20+
public class FormicApiLang extends Lang {
21+
//blatant copy of CreateLang
22+
/**
23+
* legacy-ish. Use CROWNSLang.translate and other builder methods where possible
24+
*/
25+
public static MutableComponent translateDirect(String key, Object... args) {
26+
Object[] args1 = LangBuilder.resolveBuilders(args);
27+
return Component.translatable(FormicAPI.MODID + "." + key, args1);
28+
}
29+
30+
public static List<Component> translatedOptions(String prefix, String... keys) {
31+
List<Component> result = new ArrayList<>(keys.length);
32+
for (String key : keys)
33+
result.add(translate((prefix != null ? prefix + "." : "") + key).component());
34+
return result;
35+
}
36+
37+
//
38+
39+
public static LangBuilder builder() {
40+
return new LangBuilder(FormicAPI.MODID);
41+
}
42+
43+
public static LangBuilder blockName(BlockState state) {
44+
return builder().add(state.getBlock()
45+
.getName());
46+
}
47+
48+
public static LangBuilder itemName(ItemStack stack) {
49+
return builder().add(stack.getHoverName()
50+
.copy());
51+
}
52+
53+
public static LangBuilder fluidName(FluidStack stack) {
54+
return builder().add(stack.getDisplayName()
55+
.copy());
56+
}
57+
58+
public static LangBuilder number(double d) {
59+
return builder().text(LangNumberFormat.format(d));
60+
}
61+
62+
public static LangBuilder translate(String langKey, Object... args) {
63+
return builder().translate(langKey, args);
64+
}
65+
66+
public static LangBuilder text(String text) {
67+
return builder().text(text);
68+
}
69+
70+
@Deprecated // Use while implementing and replace all references with Lang.translate
71+
public static LangBuilder temporaryText(String text) {
72+
return builder().text(text);
73+
}
74+
75+
public static LangBuilder formatTemperature(float temperature) {
76+
Temperature unit = FormicAPIConfigs.CLIENT.units.temperature.get();
77+
return CreateLang.builder().add(Component.literal("T = "))
78+
.add(number(unit.convert(temperature)))
79+
.text(" ")
80+
.add(unit.getSymbol());
81+
}
82+
public static LangBuilder formatPressure(float pressure) {
83+
Pressure unit = FormicAPIConfigs.CLIENT.units.pressure.get();
84+
return CreateLang.builder().add(Component.literal("P = "))
85+
.add(number(unit.convert(pressure)))
86+
.text(" ")
87+
.add(unit.getSymbol());
88+
}
89+
public static LangBuilder formatRadiationFlux(float radiationFlux) {
90+
RadiationFlux unit = FormicAPIConfigs.CLIENT.units.radiationFlux.get();
91+
return CreateLang.builder().add(Component.literal("activity : "))
92+
.add(number(unit.convert(radiationFlux)))
93+
.text(" ")
94+
.add(unit.getSymbol());
95+
}
96+
97+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.rae.formicapi.config;
2+
3+
import com.rae.formicapi.units.Pressure;
4+
import com.rae.formicapi.units.RadiationFlux;
5+
import com.rae.formicapi.units.Temperature;
6+
import net.createmod.catnip.config.ConfigBase;
7+
8+
public class CROWNSUnits extends ConfigBase {
9+
public final ConfigEnum<Temperature> temperature = e(Temperature.CELSIUS,"temperature", Comments.temperature);
10+
public final ConfigEnum<Pressure> pressure = e(Pressure.ATMOSPHERES,"pressure", Comments.pressure);
11+
public final ConfigEnum<RadiationFlux> radiationFlux = e(RadiationFlux.MEGA_BECQUERELS,"radiation_flux", Comments.radiationFlux);
12+
13+
14+
@Override
15+
public String getName() {
16+
return "units";
17+
}
18+
private static class Comments {
19+
static String temperature ="unit used for temperature";
20+
static String pressure ="unit used for pressure";
21+
static String radiationFlux ="unit used for radiation activity";
22+
23+
24+
}
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.rae.formicapi.config;
2+
3+
4+
import com.rae.formicapi.FormicAPI;
5+
import net.createmod.catnip.config.ConfigBase;
6+
import org.jetbrains.annotations.NotNull;
7+
8+
public class FormicAPICfgClient extends ConfigBase {
9+
10+
11+
public final CROWNSUnits units = nested(0, CROWNSUnits::new, Comments.units);
12+
@Override
13+
public @NotNull String getName() {
14+
return FormicAPI.MODID +".client";
15+
}
16+
17+
private static class Comments {
18+
static String units = "Units used";
19+
static String nuclear = "Graphic config for nuclear";
20+
static String nuclearParticle = "Radiation Particles";
21+
22+
}
23+
24+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package com.rae.formicapi.config;
2+
3+
import net.createmod.catnip.config.ConfigBase;
4+
import net.minecraftforge.common.ForgeConfigSpec;
5+
import net.minecraftforge.eventbus.api.SubscribeEvent;
6+
import net.minecraftforge.fml.ModLoadingContext;
7+
import net.minecraftforge.fml.common.Mod;
8+
import net.minecraftforge.fml.config.ModConfig;
9+
import net.minecraftforge.fml.event.config.ModConfigEvent;
10+
import org.apache.commons.lang3.tuple.Pair;
11+
12+
import java.util.EnumMap;
13+
import java.util.Map;
14+
import java.util.function.Supplier;
15+
16+
// An example config class. This is not required, but it's a good idea to have one to keep your config organized.
17+
// Demonstrates how to use Forge's config APIs
18+
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
19+
20+
public class FormicAPIConfigs
21+
{
22+
private static final Map<ModConfig.Type, ConfigBase> CONFIGS = new EnumMap<>(ModConfig.Type.class);
23+
24+
public static FormicAPICfgClient CLIENT;
25+
26+
public FormicAPIConfigs() {
27+
}
28+
29+
public static ConfigBase byType(ModConfig.Type type) {
30+
return CONFIGS.get(type);
31+
}
32+
33+
private static <T extends ConfigBase> T register(Supplier<T> factory, ModConfig.Type side) {
34+
Pair<T, ForgeConfigSpec> specPair = new ForgeConfigSpec.Builder().configure((builder) -> {
35+
T config = factory.get();
36+
config.registerAll(builder);
37+
return config;
38+
});
39+
T config = specPair.getLeft();
40+
config.specification = specPair.getRight();
41+
CONFIGS.put(side, config);
42+
return config;
43+
}
44+
45+
public static void registerConfigs(ModLoadingContext context) {
46+
CLIENT = register(FormicAPICfgClient::new, ModConfig.Type.CLIENT);
47+
//COMMON = register(CSCfgCommon::new, ModConfig.Type.COMMON);
48+
49+
for (Map.Entry<ModConfig.Type, ConfigBase> pair : CONFIGS.entrySet())
50+
context.registerConfig(pair.getKey(), pair.getValue().specification);
51+
52+
//BlockStressValues.registerProvider(context.getActiveNamespace(), SERVER.kinetics.stressValues);
53+
}
54+
55+
@SubscribeEvent
56+
public static void onLoad(ModConfigEvent.Loading event) {
57+
for (ConfigBase config : CONFIGS.values())
58+
if (config.specification == event.getConfig()
59+
.getSpec())
60+
config.onLoad();
61+
}
62+
63+
@SubscribeEvent
64+
public static void onReload(ModConfigEvent.Reloading event) {
65+
for (ConfigBase config : CONFIGS.values())
66+
if (config.specification == event.getConfig()
67+
.getSpec())
68+
config.onReload();
69+
}
70+
}

0 commit comments

Comments
 (0)