Skip to content

Commit 885aef5

Browse files
TheidenHDKamefrede
authored andcommitted
Port 1.21 part 2
1 parent 05b68d0 commit 885aef5

Some content is hidden

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

42 files changed

+398
-387
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
id 'eclipse'
44
id 'idea'
55
id 'maven-publish'
6-
id 'net.neoforged.gradle.userdev' version '7.0.145'
6+
id 'net.neoforged.gradle.userdev' version '7.0.152'
77
}
88

99
tasks.named('wrapper', Wrapper).configure {

gradle.properties

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,24 @@ org.gradle.debug=false
55

66
#read more on this at https://github.com/neoforged/NeoGradle/blob/NG_7.0/README.md#apply-parchment-mappings
77
# you can also find the latest versions at: https://parchmentmc.org/docs/getting-started
8-
neogradle.subsystems.parchment.minecraftVersion=1.21
9-
neogradle.subsystems.parchment.mappingsVersion=2024.07.28
8+
neogradle.subsystems.parchment.minecraftVersion=1.21.1
9+
neogradle.subsystems.parchment.mappingsVersion=2024.11.17
1010
# Environment Properties
1111
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
1212
# The Minecraft version must agree with the Neo version to get a valid artifact
13-
minecraft_version=1.21
13+
minecraft_version=1.21.1
1414
# The Minecraft version range can use any release version of Minecraft as bounds.
1515
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
1616
# as they do not follow standard versioning conventions.
17-
minecraft_version_range=[1.21,1.21.1)
17+
minecraft_version_range=[1.21.1,1.21.2)
1818
# The Neo version must agree with the Minecraft version to get a valid artifact
19-
neo_version=21.0.143
19+
neo_version=21.1.4
2020
# The Neo version range can use any version of Neo as bounds
21-
neo_version_range=[21.0.143,)
21+
neo_version_range=[21.1.0,)
2222
# The loader version range can only use the major version of FML as bounds
2323
loader_version_range=[4,)
2424

25-
jei_version=19.4.0.28
25+
jei_version=19.9.0.120
2626

2727
## Mod Properties
2828

@@ -34,12 +34,12 @@ mod_name=Psi
3434
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
3535
mod_license=All Rights Reserved
3636
# The mod version. See https://semver.org/
37-
mod_version=1.21
37+
mod_version=1.21.1
3838
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
3939
# This should match the base package used for the mod sources.
4040
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
4141
mod_group_id=com.example.examplemod
4242
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
4343
mod_authors=YourNameHere, OtherNameHere
4444
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
45-
mod_description=Example mod description.\nNewline characters can be used and will be replaced properly.
45+
mod_description=Example mod description.\nNewline characters can be used and will be replaced properly.

src/main/java/vazkii/psi/api/PsiAPI.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@
3838
import vazkii.psi.api.spell.detonator.IDetonationHandler;
3939
import vazkii.psi.common.item.base.ModItems;
4040

41-
import java.util.*;
41+
import java.util.Collection;
42+
import java.util.HashMap;
43+
import java.util.Map;
4244
import java.util.stream.Collectors;
4345

4446
public final class PsiAPI {

src/main/java/vazkii/psi/api/cad/ICAD.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,37 @@
88
*/
99
package vazkii.psi.api.cad;
1010

11-
import net.minecraft.Util;
12-
import net.minecraft.core.component.DataComponentType;
1311
import net.minecraft.world.entity.player.Player;
12+
import net.minecraft.world.item.Item;
1413
import net.minecraft.world.item.ItemStack;
14+
import net.minecraft.world.item.Items;
1515
import net.neoforged.api.distmarker.Dist;
1616
import net.neoforged.api.distmarker.OnlyIn;
17-
import net.neoforged.neoforge.capabilities.Capabilities;
18-
import net.neoforged.neoforge.items.ComponentItemHandler;
19-
import net.neoforged.neoforge.items.IItemHandler;
20-
import net.neoforged.neoforge.registries.DeferredHolder;
21-
import vazkii.psi.api.PsiAPI;
17+
import org.jetbrains.annotations.Nullable;
2218
import vazkii.psi.api.internal.Vector3;
2319
import vazkii.psi.api.spell.SpellRuntimeException;
2420
import vazkii.psi.api.spell.piece.PieceCraftingTrick;
2521
import vazkii.psi.common.item.base.ModItems;
2622

27-
import java.util.EnumMap;
28-
import java.util.EnumSet;
29-
import java.util.Locale;
23+
import java.util.ArrayList;
24+
import java.util.Collections;
25+
import java.util.List;
3026

3127
/**
3228
* Base interface for a CAD. You probably shouldn't implement this,
3329
* unless you absolutely know what you are doing.
3430
*/
3531
public interface ICAD {
36-
//TODO add Datafixer
37-
3832
/**
3933
* Sets the component stack inside the CAD's respective component slot
4034
*/
4135

4236
static void setComponent(ItemStack stack, ItemStack componentStack) {
43-
IItemHandler itemHandler = stack.getCapability(Capabilities.ItemHandler.ITEM);
44-
if (!componentStack.isEmpty() && componentStack.getItem() instanceof ICADComponent component && itemHandler instanceof ComponentItemHandler componentItemHandler) {
37+
@Nullable List<Item> items = stack.getOrDefault(ModItems.COMPONENTS, new ArrayList<>(Collections.nCopies(EnumCADComponent.values().length, Items.AIR)));
38+
if (!componentStack.isEmpty() && componentStack.getItem() instanceof ICADComponent component) {
4539
EnumCADComponent componentType = component.getComponentType(componentStack);
46-
componentItemHandler.setStackInSlot(componentType.ordinal(), componentStack);
40+
items.set(componentType.ordinal(), componentStack.getItem());
41+
stack.set(ModItems.COMPONENTS, items);
4742
}
4843
}
4944

src/main/java/vazkii/psi/api/cad/ICADData.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,6 @@ public interface ICADData extends INBTSerializable<CompoundTag> {
4444
*/
4545
void setSavedVector(int memorySlot, Vector3 value);
4646

47-
/**
48-
* Checks if the CAD should be updated
49-
*/
50-
boolean isDirty();
51-
52-
/**
53-
* Marks the CAD as ready to be updated
54-
*/
55-
void markDirty(boolean isDirty);
56-
5747
/**
5848
* Serializes the CAD data to be synchronized
5949
*/

src/main/java/vazkii/psi/api/internal/Vector3.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,13 @@
88
*/
99
package vazkii.psi.api.internal;
1010

11+
import com.mojang.serialization.Codec;
12+
import io.netty.buffer.ByteBuf;
13+
import net.minecraft.Util;
1114
import net.minecraft.core.BlockPos;
1215
import net.minecraft.core.Direction;
1316
import net.minecraft.core.Vec3i;
17+
import net.minecraft.network.codec.StreamCodec;
1418
import net.minecraft.world.entity.Entity;
1519
import net.minecraft.world.level.block.entity.BlockEntity;
1620
import net.minecraft.world.phys.AABB;
@@ -22,6 +26,7 @@
2226
import java.math.BigDecimal;
2327
import java.math.MathContext;
2428
import java.math.RoundingMode;
29+
import java.util.List;
2530

2631
public class Vector3 {
2732
public static final Vector3 zero = new Vector3();
@@ -39,6 +44,25 @@ public class Vector3 {
3944
public double y;
4045
public double z;
4146

47+
48+
public static final Codec<Vector3> CODEC = Codec.DOUBLE
49+
.listOf()
50+
.comapFlatMap(
51+
to -> Util.fixedSize((List<Double>)to, 3).map(list -> new Vector3(list.get(0), list.get(1), list.get(2))),
52+
from -> List.of(from.x, from.y, from.z)
53+
);
54+
public static final StreamCodec<ByteBuf, Vector3> STREAM_CODEC = new StreamCodec<ByteBuf, Vector3>() {
55+
public Vector3 decode(ByteBuf buffer) {
56+
return new Vector3(buffer.readDouble(), buffer.readDouble(), buffer.readDouble());
57+
}
58+
59+
public void encode(ByteBuf buffer, Vector3 vector3) {
60+
buffer.writeDouble(vector3.x);
61+
buffer.writeDouble(vector3.y);
62+
buffer.writeDouble(vector3.z);
63+
}
64+
};
65+
4266
public Vector3() {
4367
}
4468

src/main/java/vazkii/psi/api/material/PsimetalArmorMaterial.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ public class PsimetalArmorMaterial {
2828
12,
2929
SoundEvents.ARMOR_EQUIP_IRON,
3030
() -> Ingredient.of(BuiltInRegistries.ITEM.get(ResourceLocation.fromNamespaceAndPath(PsiAPI.MOD_ID, "psimetal"))),
31-
List.of(new ArmorMaterial.Layer(ResourceLocation.withDefaultNamespace(""), "", true),
32-
new ArmorMaterial.Layer(ResourceLocation.withDefaultNamespace(""), "", false)),
31+
List.of(new ArmorMaterial.Layer(ResourceLocation.withDefaultNamespace(""), "", true)),
3332
0.0F,
3433
0.0F));
3534
}

src/main/java/vazkii/psi/client/core/handler/ColorHandler.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ public static int pulseColor(int source, float speed, int magnitude) {
5858

5959
public static int pulseColor(int source, float multiplier, float speed, int magnitude) {
6060
int add = (int) (Mth.sin(ClientTickHandler.ticksInGame * speed) * magnitude);
61-
int red = (0xFF0000 & source) >> 16;
62-
int green = (0x00FF00 & source) >> 8;
63-
int blue = 0x0000FF & source;
61+
int red = (0x00FF0000 & source) >> 16;
62+
int green = (0x0000FF00 & source) >> 8;
63+
int blue = 0x000000FF & source;
6464
int addedRed = Mth.clamp((int) (multiplier * (red + add)), 0, 255);
6565
int addedGreen = Mth.clamp((int) (multiplier * (green + add)), 0, 255);
6666
int addedBlue = Mth.clamp((int) (multiplier * (blue + add)), 0, 255);
67-
return (addedRed << 16) | (addedGreen << 8) | addedBlue;
67+
return 0xFF000000 | (addedRed << 16) | (addedGreen << 8) | addedBlue;
6868
}
6969

7070
public static int slideColorTime(int color, int secondColor, float t) {
@@ -75,17 +75,17 @@ public static int slideColorTime(int color, int secondColor, float t) {
7575
return secondColor;
7676
}
7777

78-
int redA = (0xFF0000 & color) >> 16;
79-
int greenA = (0x00FF00 & color) >> 8;
80-
int blueA = 0x0000FF & color;
81-
int redB = (0xFF0000 & secondColor) >> 16;
82-
int greenB = (0x00FF00 & secondColor) >> 8;
83-
int blueB = 0x0000FF & secondColor;
78+
int redA = (0x00FF0000 & color) >> 16;
79+
int greenA = (0x0000FF00 & color) >> 8;
80+
int blueA = 0x000000FF & color;
81+
int redB = (0x00FF0000 & secondColor) >> 16;
82+
int greenB = (0x0000FF00 & secondColor) >> 8;
83+
int blueB = 0x000000FF & secondColor;
8484

8585
int newRed = (int) (redA * (1 - shift) + redB * shift);
8686
int newGreen = (int) (greenA * (1 - shift) + greenB * shift);
8787
int newBlue = (int) (blueA * (1 - shift) + blueB * shift);
88-
return (newRed << 16) | (newGreen << 8) | newBlue;
88+
return 0xFF000000 | (newRed << 16) | (newGreen << 8) | newBlue;
8989
}
9090

9191
}

src/main/java/vazkii/psi/client/fx/ModParticles.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@
1010

1111
import net.minecraft.core.particles.ParticleType;
1212
import net.minecraft.core.registries.Registries;
13-
import net.minecraft.resources.ResourceLocation;
1413
import net.neoforged.api.distmarker.Dist;
1514
import net.neoforged.bus.api.SubscribeEvent;
1615
import net.neoforged.fml.common.EventBusSubscriber;
1716
import net.neoforged.neoforge.client.event.RegisterParticleProvidersEvent;
1817
import net.neoforged.neoforge.registries.DeferredHolder;
1918
import net.neoforged.neoforge.registries.DeferredRegister;
20-
import net.neoforged.neoforge.registries.RegisterEvent;
2119
import vazkii.psi.api.PsiAPI;
2220
import vazkii.psi.common.lib.LibMisc;
2321

src/main/java/vazkii/psi/client/jei/JEICompat.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import mezz.jei.api.IModPlugin;
1212
import mezz.jei.api.JeiPlugin;
1313
import mezz.jei.api.helpers.IJeiHelpers;
14-
import mezz.jei.api.ingredients.subtypes.IIngredientSubtypeInterpreter;
14+
import mezz.jei.api.ingredients.subtypes.ISubtypeInterpreter;
1515
import mezz.jei.api.ingredients.subtypes.UidContext;
1616
import mezz.jei.api.registration.*;
1717
import net.minecraft.client.Minecraft;
@@ -76,13 +76,13 @@ public void registerItemSubtypes(ISubtypeRegistration registration) {
7676
registration.registerSubtypeInterpreter(ModItems.cad, Cad.INSTANCE);
7777
}
7878

79-
private static class Cad implements IIngredientSubtypeInterpreter<ItemStack> {
79+
private static class Cad implements ISubtypeInterpreter<ItemStack> {
8080
public static final Cad INSTANCE = new Cad();
8181

8282
private Cad() {
8383
}
8484

85-
public String apply(ItemStack itemStack, UidContext context) {
85+
public String getSubtypeData(ItemStack itemStack, UidContext context) {
8686
ItemCAD cad = (ItemCAD) itemStack.getItem();
8787

8888
List<String> strings = new ArrayList<>();
@@ -98,5 +98,10 @@ public String apply(ItemStack itemStack, UidContext context) {
9898
}
9999
return joiner.toString();
100100
}
101+
102+
@Override
103+
public String getLegacyStringSubtypeInfo(ItemStack ingredient, UidContext context) {
104+
return "";
105+
}
101106
}
102107
}

0 commit comments

Comments
 (0)