mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-27 10:59:07 +00:00
feat(block): 添加配置文件和一个新的随机数类型
This commit is contained in:
@@ -431,6 +431,7 @@ public abstract class AbstractPackManager implements PackManager {
|
||||
plugin.saveResource("resources/default/configuration/blocks/topaz_ore.yml");
|
||||
plugin.saveResource("resources/default/configuration/blocks/netherite_anvil.yml");
|
||||
plugin.saveResource("resources/default/configuration/blocks/amethyst_torch.yml");
|
||||
plugin.saveResource("resources/default/configuration/blocks/honeydew.yml");
|
||||
// assets
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/font/image/emojis.png");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png");
|
||||
@@ -537,6 +538,10 @@ public abstract class AbstractPackManager implements PackManager {
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png.mcmeta");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png.mcmeta");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/honeydew.png");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/honeydew_bottom.png");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/honeydew_top.png");
|
||||
plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/item/custom/honeydew_item.png");
|
||||
}
|
||||
|
||||
private TreeMap<ConfigParser, List<CachedConfigSection>> updateCachedConfigFiles() {
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package net.momirealms.craftengine.core.plugin.context.number;
|
||||
|
||||
import net.momirealms.craftengine.core.plugin.context.Context;
|
||||
import net.momirealms.craftengine.core.util.Key;
|
||||
import net.momirealms.craftengine.core.util.RandomUtils;
|
||||
import net.momirealms.craftengine.core.util.ResourceConfigUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public record BinomialNumberProvider(NumberProvider trials, NumberProvider successProbability) implements NumberProvider {
|
||||
public static final Factory FACTORY = new Factory();
|
||||
|
||||
@Override
|
||||
public float getFloat(Context context) {
|
||||
return getInt(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDouble(Context context) {
|
||||
return getInt(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt(Context context) {
|
||||
int trialCount = this.trials.getInt(context);
|
||||
float probability = this.successProbability.getFloat(context);
|
||||
int successCount = 0;
|
||||
|
||||
for (int i = 0; i < trialCount; i++) {
|
||||
if (RandomUtils.generateRandomFloat(0, 1) < probability) {
|
||||
successCount++;
|
||||
}
|
||||
}
|
||||
return successCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Key type() {
|
||||
return NumberProviders.BINOMIAL;
|
||||
}
|
||||
|
||||
public static class Factory implements NumberProviderFactory {
|
||||
|
||||
@Override
|
||||
public NumberProvider create(Map<String, Object> arguments) {
|
||||
Object trials = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("extra"), "warning.config.number.binomial.missing_extra");
|
||||
Object successProbability = ResourceConfigUtils.requireNonNullOrThrow(arguments.get("probability"), "warning.config.number.binomial.missing_probability");
|
||||
return new BinomialNumberProvider(NumberProviders.fromObject(trials), NumberProviders.fromObject(successProbability));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ public class NumberProviders {
|
||||
public static final Key UNIFORM = Key.of("craftengine:uniform");
|
||||
public static final Key EXPRESSION = Key.of("craftengine:expression");
|
||||
public static final Key GAUSSIAN = Key.of("craftengine:gaussian");
|
||||
public static final Key BINOMIAL = Key.of("craftengine:binomial");
|
||||
|
||||
static {
|
||||
register(FIXED, FixedNumberProvider.FACTORY);
|
||||
@@ -25,6 +26,7 @@ public class NumberProviders {
|
||||
register(UNIFORM, UniformNumberProvider.FACTORY);
|
||||
register(GAUSSIAN, GaussianNumberProvider.FACTORY);
|
||||
register(EXPRESSION, ExpressionNumberProvider.FACTORY);
|
||||
register(BINOMIAL, BinomialNumberProvider.FACTORY);
|
||||
}
|
||||
|
||||
public static void register(Key key, NumberProviderFactory factory) {
|
||||
|
||||
Reference in New Issue
Block a user