-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathRegistries.java
More file actions
84 lines (74 loc) · 3.34 KB
/
Copy pathRegistries.java
File metadata and controls
84 lines (74 loc) · 3.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package at.pavlov.internal.key.registries;
import at.pavlov.internal.Key;
import at.pavlov.internal.projectile.definition.CustomProjectileDefinition;
import at.pavlov.internal.projectile.definition.DefaultProjectileDefinition;
import at.pavlov.internal.projectile.definition.KeyedDefaultProjectile;
import at.pavlov.internal.projectile.definition.ProjectilePhysics;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Registries {
public static final Registry.Composite<ProjectilePhysics> PROJECTILE_PHYSICS;
public static final Registry<CustomProjectileDefinition> CUSTOM_PROJECTILE_DEFINITION;
public static final Registry<ProjectilePhysics> DEFAULT_PROJECTILE_DEFINITION_REGISTRY;
static {
CUSTOM_PROJECTILE_DEFINITION = new Registry<>();
DEFAULT_PROJECTILE_DEFINITION_REGISTRY = new Registry<>(() -> {
List<ProjectilePhysics> toAdd = new ArrayList<>();
Collection<Key> fireballs = Key.from(
List.of(
"minecraft:fireball",
"minecraft:small_fireball",
"minecraft:dragon_fireball",
"minecraft:wither_skull",
"minecraft:shulker_bullet")
);
var fireballBuilder = DefaultProjectileDefinition.builder()
.gravity(0.0)
.drag(0.95)
.waterDrag(0.95)
.constantAcceleration(0.1);
for (Key fireball : fireballs) {
toAdd.add(
fireballBuilder
.key(fireball)
.build()
);
}
Collection<Key> arrows = Key.from(List.of("minecraft:arrow", "minecraft:spectral_arrow"));
var arrowBuilder = DefaultProjectileDefinition.builder()
.gravity(0.05)
.drag(0.99)
.waterDrag(0.6);
for (Key arrow : arrows) {
toAdd.add(
arrowBuilder
.key(arrow)
.build()
);
}
toAdd.add(
DefaultProjectileDefinition.builder()
.gravity(0.05)
.drag(0.99)
.waterDrag(0.99)
.key(Key.mc("trident"))
.build()
);
toAdd.add(
DefaultProjectileDefinition.builder()
.gravity(0.0)
.drag(1.0)
.waterDrag(1.0)
.key(Key.mc("breeze_wind_charge"))
.build()
);
return toAdd;
});
SharedRegistryKeyValidator<ProjectilePhysics> validator = new SharedRegistryKeyValidator<>(CUSTOM_PROJECTILE_DEFINITION, DEFAULT_PROJECTILE_DEFINITION_REGISTRY);
CUSTOM_PROJECTILE_DEFINITION.setValidator(validator);
DEFAULT_PROJECTILE_DEFINITION_REGISTRY.setValidator(validator);
DEFAULT_PROJECTILE_DEFINITION_REGISTRY.setFrozen(true);
PROJECTILE_PHYSICS = new Registry.Composite<>(CUSTOM_PROJECTILE_DEFINITION, DEFAULT_PROJECTILE_DEFINITION_REGISTRY);
}
}