feature/d01-component-system #5

Merged
NotEvil merged 20 commits from feature/d01-component-system into develop 2026-04-14 00:54:17 +00:00
Showing only changes of commit 231522c68e - Show all commits

View File

@@ -2,11 +2,42 @@ package com.tiedup.remake.v2.bondage.component;
import com.google.gson.JsonObject;
/**
* Component: gagging behavior for data-driven items.
*
* JSON config: {@code "gagging": {"comprehension": 0.2, "range": 10.0}}
*/
public class GaggingComponent implements IItemComponent {
private GaggingComponent() {}
private final double comprehension;
private final double range;
private GaggingComponent(double comprehension, double range) {
this.comprehension = comprehension;
this.range = range;
}
public static IItemComponent fromJson(JsonObject config) {
return new GaggingComponent();
double comprehension = 0.2;
double range = 10.0;
if (config != null) {
if (config.has("comprehension")) {
comprehension = config.get("comprehension").getAsDouble();
}
if (config.has("range")) {
range = config.get("range").getAsDouble();
}
}
return new GaggingComponent(comprehension, range);
}
/** How much of the gagged speech is comprehensible (0.0 = nothing, 1.0 = full). */
public double getComprehension() {
return comprehension;
}
/** Maximum range in blocks where muffled speech can be heard. */
public double getRange() {
return range;
}
}