Skip to content

Commit 541441f

Browse files
repackaging
1 parent d65845f commit 541441f

98 files changed

Lines changed: 1581 additions & 1601 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/client/java/symbolics/division/spirit/vector/InputHandler.java renamed to src/client/java/symbolics/division/spirit_vector/InputHandler.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
package symbolics.division.spirit.vector;
1+
package symbolics.division.spirit_vector;
22

33
import net.minecraft.client.MinecraftClient;
4-
import net.minecraft.client.gui.hud.DebugHud;
5-
import symbolics.division.spirit.vector.logic.ISpiritVectorUser;
6-
import symbolics.division.spirit.vector.logic.input.Input;
7-
import symbolics.division.spirit.vector.logic.input.InputManager;
4+
import symbolics.division.spirit_vector.logic.ISpiritVectorUser;
5+
import symbolics.division.spirit_vector.logic.input.Input;
6+
import symbolics.division.spirit_vector.logic.input.InputManager;
87

98
public final class InputHandler {
109
public static void tick(MinecraftClient client) {

src/client/java/symbolics/division/spirit/vector/SpiritVectorClient.java renamed to src/client/java/symbolics/division/spirit_vector/SpiritVectorClient.java

Lines changed: 94 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,95 @@
1-
package symbolics.division.spirit.vector;
2-
3-
import net.fabricmc.api.ClientModInitializer;
4-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
5-
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
6-
import net.fabricmc.fabric.api.client.rendering.v1.ArmorRenderer;
7-
import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry;
8-
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
9-
import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityFeatureRendererRegistrationCallback;
10-
import net.minecraft.client.MinecraftClient;
11-
import net.minecraft.client.model.ModelPart;
12-
import net.minecraft.client.render.entity.PlayerEntityRenderer;
13-
import symbolics.division.spirit.vector.event.JukeboxEvent;
14-
import symbolics.division.spirit.vector.logic.ISpiritVectorUser;
15-
import symbolics.division.spirit.vector.logic.SVEntityState;
16-
import symbolics.division.spirit.vector.logic.vector.SpiritVector;
17-
import symbolics.division.spirit.vector.logic.ability.SlamPacketC2S;
18-
import symbolics.division.spirit.vector.logic.ability.TeleportAbilityC2SPayload;
19-
import symbolics.division.spirit.vector.networking.ModifyMomentumPayloadS2C;
20-
import symbolics.division.spirit.vector.render.SpiritGaugeHUD;
21-
import symbolics.division.spirit.vector.render.SpiritVectorSkatesRenderer;
22-
import symbolics.division.spirit.vector.render.SpiritWingsFeatureRenderer;
23-
import symbolics.division.spirit.vector.render.SpiritWingsModel;
24-
import symbolics.division.spirit.vector.sfx.ClientSFX;
25-
import symbolics.division.spirit.vector.sfx.EffectsManager;
26-
27-
public class SpiritVectorClient implements ClientModInitializer {
28-
@Override
29-
public void onInitializeClient() {
30-
31-
/// pardon the dust.
32-
33-
EffectsManager.registerSFXRequestC2SCallback(ClientPlayNetworking::send);
34-
// registerS2C(
35-
// SVEntityState.Payload.ID, SVEntityState.Payload.CODEC,
36-
// (payload, context) -> SVEntityState.handleStateSync(payload, context.player().getWorld())
37-
// );
38-
39-
ClientPlayNetworking.registerGlobalReceiver(
40-
SVEntityState.Payload.ID, (payload, context) -> SVEntityState.handleStateSync(payload, context.player().getWorld())
41-
);
42-
43-
ClientPlayNetworking.registerGlobalReceiver(
44-
ModifyMomentumPayloadS2C.ID,
45-
((payload, context) -> ModifyMomentumPayloadS2C.HANDLER(payload, context.player()))
46-
);
47-
48-
// spirit wings reg
49-
EntityModelLayerRegistry.registerModelLayer(SpiritWingsModel.LAYER, SpiritWingsModel::getTexturedModelData);
50-
51-
LivingEntityFeatureRendererRegistrationCallback.EVENT.register(
52-
(entityType, entityRenderer, registrationHelper, context) -> {
53-
if (entityRenderer instanceof PlayerEntityRenderer) {
54-
ModelPart wings = context.getPart(SpiritWingsModel.LAYER);
55-
registrationHelper.register(new SpiritWingsFeatureRenderer<>(entityRenderer, wings));
56-
}
57-
}
58-
);
59-
60-
// skates
61-
ArmorRenderer.register(new SpiritVectorSkatesRenderer(), SpiritVectorItems.SPIRIT_VECTOR);
62-
63-
// particles req
64-
ClientSFX.registerAll();
65-
ClientTickEvents.START_CLIENT_TICK.register(InputHandler::tick);
66-
67-
// teleport ability req
68-
TeleportAbilityC2SPayload.registerRequestCallback(
69-
p -> ClientPlayNetworking.send(new TeleportAbilityC2SPayload(p))
70-
);
71-
72-
// space jam
73-
SlamPacketC2S.registerRequestCallback(
74-
p -> ClientPlayNetworking.send(new SlamPacketC2S((p)))
75-
);
76-
77-
HudRenderCallback.EVENT.register(SpiritGaugeHUD::onHudRender);
78-
79-
JukeboxEvent.PLAY.register(((world, jukeboxManager, pos) -> {
80-
if (MinecraftClient.getInstance().player instanceof ISpiritVectorUser user) {
81-
var sv = user.spiritVector();
82-
if (sv != null && pos.isWithinDistance(sv.user.getPos(), 32)) {
83-
sv.modifyMomentum(SpiritVector.MAX_MOMENTUM / 10);
84-
sv.stateManager().enableStateFor(SpiritVector.MOMENTUM_DECAY_GRACE_STATE, 20);
85-
}
86-
}
87-
}));
88-
}
89-
90-
// private <T extends CustomPayload>
91-
// void registerS2C(CustomPayload.Id<T> pid, PacketCodec<? super RegistryByteBuf, T> codec, ClientPlayNetworking.PlayPayloadHandler<T> handler) {
92-
// PayloadTypeRegistry.playC2S().register(pid, codec);
93-
// ClientPlayNetworking.registerGlobalReceiver(pid, handler);
94-
// }
1+
package symbolics.division.spirit_vector;
2+
3+
import net.fabricmc.api.ClientModInitializer;
4+
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
5+
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
6+
import net.fabricmc.fabric.api.client.rendering.v1.ArmorRenderer;
7+
import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry;
8+
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
9+
import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityFeatureRendererRegistrationCallback;
10+
import net.minecraft.client.MinecraftClient;
11+
import net.minecraft.client.model.ModelPart;
12+
import net.minecraft.client.render.entity.PlayerEntityRenderer;
13+
import symbolics.division.spirit_vector.event.JukeboxEvent;
14+
import symbolics.division.spirit_vector.logic.ISpiritVectorUser;
15+
import symbolics.division.spirit_vector.logic.SVEntityState;
16+
import symbolics.division.spirit_vector.logic.vector.SpiritVector;
17+
import symbolics.division.spirit_vector.logic.ability.SlamPacketC2S;
18+
import symbolics.division.spirit_vector.logic.ability.TeleportAbilityC2SPayload;
19+
import symbolics.division.spirit_vector.networking.ModifyMomentumPayloadS2C;
20+
import symbolics.division.spirit_vector.render.SpiritGaugeHUD;
21+
import symbolics.division.spirit_vector.render.SpiritVectorSkatesRenderer;
22+
import symbolics.division.spirit_vector.render.SpiritWingsFeatureRenderer;
23+
import symbolics.division.spirit_vector.render.SpiritWingsModel;
24+
import symbolics.division.spirit_vector.sfx.ClientSFX;
25+
import symbolics.division.spirit_vector.sfx.EffectsManager;
26+
27+
public class SpiritVectorClient implements ClientModInitializer {
28+
@Override
29+
public void onInitializeClient() {
30+
31+
/// pardon the dust.
32+
33+
EffectsManager.registerSFXRequestC2SCallback(ClientPlayNetworking::send);
34+
// registerS2C(
35+
// SVEntityState.Payload.ID, SVEntityState.Payload.CODEC,
36+
// (payload, context) -> SVEntityState.handleStateSync(payload, context.player().getWorld())
37+
// );
38+
39+
ClientPlayNetworking.registerGlobalReceiver(
40+
SVEntityState.Payload.ID, (payload, context) -> SVEntityState.handleStateSync(payload, context.player().getWorld())
41+
);
42+
43+
ClientPlayNetworking.registerGlobalReceiver(
44+
ModifyMomentumPayloadS2C.ID,
45+
((payload, context) -> ModifyMomentumPayloadS2C.HANDLER(payload, context.player()))
46+
);
47+
48+
// spirit wings reg
49+
EntityModelLayerRegistry.registerModelLayer(SpiritWingsModel.LAYER, SpiritWingsModel::getTexturedModelData);
50+
51+
LivingEntityFeatureRendererRegistrationCallback.EVENT.register(
52+
(entityType, entityRenderer, registrationHelper, context) -> {
53+
if (entityRenderer instanceof PlayerEntityRenderer) {
54+
ModelPart wings = context.getPart(SpiritWingsModel.LAYER);
55+
registrationHelper.register(new SpiritWingsFeatureRenderer<>(entityRenderer, wings));
56+
}
57+
}
58+
);
59+
60+
// skates
61+
ArmorRenderer.register(new SpiritVectorSkatesRenderer(), SpiritVectorItems.SPIRIT_VECTOR);
62+
63+
// particles req
64+
ClientSFX.registerAll();
65+
ClientTickEvents.START_CLIENT_TICK.register(InputHandler::tick);
66+
67+
// teleport ability req
68+
TeleportAbilityC2SPayload.registerRequestCallback(
69+
p -> ClientPlayNetworking.send(new TeleportAbilityC2SPayload(p))
70+
);
71+
72+
// space jam
73+
SlamPacketC2S.registerRequestCallback(
74+
p -> ClientPlayNetworking.send(new SlamPacketC2S((p)))
75+
);
76+
77+
HudRenderCallback.EVENT.register(SpiritGaugeHUD::onHudRender);
78+
79+
JukeboxEvent.PLAY.register(((world, jukeboxManager, pos) -> {
80+
if (MinecraftClient.getInstance().player instanceof ISpiritVectorUser user) {
81+
var sv = user.spiritVector();
82+
if (sv != null && pos.isWithinDistance(sv.user.getPos(), 32)) {
83+
sv.modifyMomentum(SpiritVector.MAX_MOMENTUM / 10);
84+
sv.stateManager().enableStateFor(SpiritVector.MOMENTUM_DECAY_GRACE_STATE, 20);
85+
}
86+
}
87+
}));
88+
}
89+
90+
// private <T extends CustomPayload>
91+
// void registerS2C(CustomPayload.Id<T> pid, PacketCodec<? super RegistryByteBuf, T> codec, ClientPlayNetworking.PlayPayloadHandler<T> handler) {
92+
// PayloadTypeRegistry.playC2S().register(pid, codec);
93+
// ClientPlayNetworking.registerGlobalReceiver(pid, handler);
94+
// }
9595
}

src/client/java/symbolics/division/spirit/vector/mixin/client/AbstractClientPlayerEntityMixin.java renamed to src/client/java/symbolics/division/spirit_vector/mixin/client/AbstractClientPlayerEntityMixin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package symbolics.division.spirit.vector.mixin.client;
1+
package symbolics.division.spirit_vector.mixin.client;
22

33
import com.mojang.authlib.GameProfile;
44
import net.minecraft.client.MinecraftClient;
@@ -10,8 +10,8 @@
1010
import org.spongepowered.asm.mixin.injection.At;
1111
import org.spongepowered.asm.mixin.injection.Inject;
1212
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13-
import symbolics.division.spirit.vector.sfx.sound.EngineSoundInstance;
14-
import symbolics.division.spirit.vector.sfx.sound.SlidingSoundInstance;
13+
import symbolics.division.spirit_vector.sfx.sound.EngineSoundInstance;
14+
import symbolics.division.spirit_vector.sfx.sound.SlidingSoundInstance;
1515

1616
@Mixin(AbstractClientPlayerEntity.class)
1717
public abstract class AbstractClientPlayerEntityMixin extends PlayerEntity {

src/client/java/symbolics/division/spirit/vector/mixin/client/BipedEntityModelMixin.java renamed to src/client/java/symbolics/division/spirit_vector/mixin/client/BipedEntityModelMixin.java

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
package symbolics.division.spirit.vector.mixin.client;
2-
3-
import net.minecraft.client.model.ModelPart;
4-
import net.minecraft.client.render.entity.model.AnimalModel;
5-
import net.minecraft.client.render.entity.model.BipedEntityModel;
6-
import net.minecraft.client.render.entity.model.ModelWithArms;
7-
import net.minecraft.client.render.entity.model.ModelWithHead;
8-
import net.minecraft.entity.LivingEntity;
9-
import org.spongepowered.asm.mixin.Mixin;
10-
import org.spongepowered.asm.mixin.Shadow;
11-
import org.spongepowered.asm.mixin.injection.At;
12-
import org.spongepowered.asm.mixin.injection.Inject;
13-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14-
import symbolics.division.spirit.vector.logic.vector.SpiritVector;
15-
import symbolics.division.spirit.vector.sfx.ModelController;
16-
17-
@Mixin(BipedEntityModel.class)
18-
public abstract class BipedEntityModelMixin<T extends LivingEntity> extends AnimalModel<T> implements ModelWithArms, ModelWithHead {
19-
@Shadow private ModelPart rightLeg;
20-
@Shadow private ModelPart leftLeg;
21-
@Shadow private ModelPart rightArm;
22-
@Shadow private ModelPart leftArm;
23-
24-
@Inject(method = "setAngles", at =@At("TAIL"))
25-
public void setAngles(T entity, float f, float g, float h, float i, float j, CallbackInfo ci) {
26-
if (SpiritVector.hasEquipped(entity)) {
27-
ModelController.controlLimbs(entity, leftLeg, rightLeg, leftArm, rightArm);
28-
}
29-
}
30-
}
1+
package symbolics.division.spirit_vector.mixin.client;
2+
3+
import net.minecraft.client.model.ModelPart;
4+
import net.minecraft.client.render.entity.model.AnimalModel;
5+
import net.minecraft.client.render.entity.model.BipedEntityModel;
6+
import net.minecraft.client.render.entity.model.ModelWithArms;
7+
import net.minecraft.client.render.entity.model.ModelWithHead;
8+
import net.minecraft.entity.LivingEntity;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.Shadow;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
import org.spongepowered.asm.mixin.injection.Inject;
13+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14+
import symbolics.division.spirit_vector.logic.vector.SpiritVector;
15+
import symbolics.division.spirit_vector.sfx.ModelController;
16+
17+
@Mixin(BipedEntityModel.class)
18+
public abstract class BipedEntityModelMixin<T extends LivingEntity> extends AnimalModel<T> implements ModelWithArms, ModelWithHead {
19+
@Shadow private ModelPart rightLeg;
20+
@Shadow private ModelPart leftLeg;
21+
@Shadow private ModelPart rightArm;
22+
@Shadow private ModelPart leftArm;
23+
24+
@Inject(method = "setAngles", at =@At("TAIL"))
25+
public void setAngles(T entity, float f, float g, float h, float i, float j, CallbackInfo ci) {
26+
if (SpiritVector.hasEquipped(entity)) {
27+
ModelController.controlLimbs(entity, leftLeg, rightLeg, leftArm, rightArm);
28+
}
29+
}
30+
}

src/client/java/symbolics/division/spirit/vector/mixin/client/ClientPlayerEntityMixin.java renamed to src/client/java/symbolics/division/spirit_vector/mixin/client/ClientPlayerEntityMixin.java

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
1-
package symbolics.division.spirit.vector.mixin.client;
2-
3-
import com.mojang.authlib.GameProfile;
4-
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
5-
import net.minecraft.client.network.AbstractClientPlayerEntity;
6-
import net.minecraft.client.network.ClientPlayerEntity;
7-
import net.minecraft.client.world.ClientWorld;
8-
import net.minecraft.entity.Entity;
9-
import net.minecraft.entity.LivingEntity;
10-
import net.minecraft.item.ItemStack;
11-
import org.spongepowered.asm.mixin.Mixin;
12-
import org.spongepowered.asm.mixin.injection.At;
13-
import org.spongepowered.asm.mixin.injection.Inject;
14-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
15-
import symbolics.division.spirit.vector.logic.ISpiritVectorUser;
16-
import symbolics.division.spirit.vector.logic.SVEntityState;
17-
import symbolics.division.spirit.vector.logic.vector.SpiritVector;
18-
19-
@Mixin(ClientPlayerEntity.class)
20-
public class ClientPlayerEntityMixin extends AbstractClientPlayerEntity implements ISpiritVectorUser {
21-
private ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) {
22-
super(world, profile);
23-
}
24-
25-
public SpiritVector spiritVector;
26-
public ItemStack prevStack = ItemStack.EMPTY;
27-
@Override
28-
public SpiritVector spiritVector() {
29-
ItemStack item = SpiritVector.getEquippedItem(this);
30-
if (item == null) {
31-
spiritVector = null;
32-
} else if (spiritVector == null || !ItemStack.areItemsAndComponentsEqual(item, prevStack)) {
33-
spiritVector = SpiritVector.of((LivingEntity)(Entity)this, item);
34-
prevStack = item;
35-
setWingState(false);
36-
}
37-
return spiritVector;
38-
}
39-
40-
@Override
41-
public void setWingState(boolean visible) {
42-
SVEntityState state = new SVEntityState(visible);
43-
this.setAttached(SVEntityState.ATTACHMENT, state);
44-
SVEntityState.Payload payload = new SVEntityState.Payload(this.getId(), state);
45-
ClientPlayNetworking.send(payload);
46-
}
47-
48-
@Inject(method = "shouldSlowDown", at = @At("HEAD"), cancellable = true)
49-
public void shouldSlowDown(CallbackInfoReturnable<Boolean> ci) {
50-
// don't let crouching or crawling
51-
// get in the way of our fun
52-
if (getSpiritVector().isPresent()) {
53-
ci.setReturnValue(false);
54-
ci.cancel();
55-
}
56-
}
57-
}
1+
package symbolics.division.spirit_vector.mixin.client;
2+
3+
import com.mojang.authlib.GameProfile;
4+
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
5+
import net.minecraft.client.network.AbstractClientPlayerEntity;
6+
import net.minecraft.client.network.ClientPlayerEntity;
7+
import net.minecraft.client.world.ClientWorld;
8+
import net.minecraft.entity.Entity;
9+
import net.minecraft.entity.LivingEntity;
10+
import net.minecraft.item.ItemStack;
11+
import org.spongepowered.asm.mixin.Mixin;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.Inject;
14+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
15+
import symbolics.division.spirit_vector.logic.ISpiritVectorUser;
16+
import symbolics.division.spirit_vector.logic.SVEntityState;
17+
import symbolics.division.spirit_vector.logic.vector.SpiritVector;
18+
19+
@Mixin(ClientPlayerEntity.class)
20+
public class ClientPlayerEntityMixin extends AbstractClientPlayerEntity implements ISpiritVectorUser {
21+
private ClientPlayerEntityMixin(ClientWorld world, GameProfile profile) {
22+
super(world, profile);
23+
}
24+
25+
public SpiritVector spiritVector;
26+
public ItemStack prevStack = ItemStack.EMPTY;
27+
@Override
28+
public SpiritVector spiritVector() {
29+
ItemStack item = SpiritVector.getEquippedItem(this);
30+
if (item == null) {
31+
spiritVector = null;
32+
} else if (spiritVector == null || !ItemStack.areItemsAndComponentsEqual(item, prevStack)) {
33+
spiritVector = SpiritVector.of((LivingEntity)(Entity)this, item);
34+
prevStack = item;
35+
setWingState(false);
36+
}
37+
return spiritVector;
38+
}
39+
40+
@Override
41+
public void setWingState(boolean visible) {
42+
SVEntityState state = new SVEntityState(visible);
43+
this.setAttached(SVEntityState.ATTACHMENT, state);
44+
SVEntityState.Payload payload = new SVEntityState.Payload(this.getId(), state);
45+
ClientPlayNetworking.send(payload);
46+
}
47+
48+
@Inject(method = "shouldSlowDown", at = @At("HEAD"), cancellable = true)
49+
public void shouldSlowDown(CallbackInfoReturnable<Boolean> ci) {
50+
// don't let crouching or crawling
51+
// get in the way of our fun
52+
if (getSpiritVector().isPresent()) {
53+
ci.setReturnValue(false);
54+
ci.cancel();
55+
}
56+
}
57+
}

0 commit comments

Comments
 (0)