Skip to content

Commit 5079333

Browse files
1.19.3/1.19.4 interop
1 parent 5024075 commit 5079333

File tree

4,458 files changed

+170100
-503
lines changed

Some content is hidden

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

4,458 files changed

+170100
-503
lines changed

CONTRIBUTING.md

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1+
# CONTRIBUTING
12

2-
3-
Quick note here before I forget:
4-
- This library's codebase pertains to Fabric and Forge ONLY
5-
- Integration with commonly used mods, such as JEI and WAILA, are great contributions but should be maintained in separate haxelibs (like `pickhaxe-waila`)
3+
Some quick notes on contributing:
4+
- Enable Haxe Formatting.
5+
- `net.minecraft_draft` contains unverified classes generated from JavaDocs.
6+
- `net.minecraft` contains verified/manually fixed classes based on the draft classes.
7+
- `net.pickhaxe` contains internal library stuff (such as classes for the build tool) as well as Fabric/Forge interop.
8+
- Interop between different Minecraft versions goes into the relevant class in the `net.minecraft` package.
9+
- Interop resolving differences between different versions of Fabric goes in `net.fabricmc`.
10+
- Interop resolving differences between different versions of Forge goes in `net.minecraftforge`.
11+
- Interop resolving differences between Forge and Fabric (for example, mod registration is different) goes in `net.pickhaxe`.
12+
- Anything else (Mixin support, interop with commonly used mods) should go in their OWN library.
13+
- This library's codebase pertains to Fabric and Forge ONLY
14+
- Integration with commonly used mods, such as JEI and WAILA, are great contributions but should be maintained in separate haxelibs (like `pickhaxe-waila`)

gradle/build.gradle

+17-4
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,23 @@ repositories {
7373
dependencies {
7474
// To change the versions see the gradle.properties file
7575
minecraft "com.mojang:minecraft:${System.getProperty('pickhaxe.minecraft.version')}"
76-
// mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
77-
mappings loom.layered() {
78-
officialMojangMappings()
79-
parchment("org.parchmentmc.data:parchment-1.19.3:2023.02.26@zip")
76+
77+
// Configure mappings for the Fabric loader.
78+
switch(System.getProperty('pickhaxe.mappings.current')) {
79+
case 'official':
80+
case 'mojmaps':
81+
case 'mojang':
82+
mappings loom.officialMojangMappings()
83+
break;
84+
case 'parchment':
85+
mappings loom.layered() {
86+
officialMojangMappings()
87+
parchment("org.parchmentmc.data:${System.getProperty('pickhaxe.mappings.parchment.version')}@zip")
88+
}
89+
break;
90+
case 'yarn':
91+
mappings "net.fabricmc:yarn:${System.getProperty('pickhaxe.mappings.yarn.version')}"
92+
break;
8093
}
8194

8295
modImplementation "net.fabricmc:fabric-loader:${System.getProperty('pickhaxe.loader.fabric.loaderVersion')}"

samples/made-in-haxe/src/com/elitemastereric/madeinhaxe/MadeInHaxeMod.hx

+12
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ class MadeInHaxeMod implements Mod {
1515
LOGGER.info('Hello Forge! Welcome to Minecraft ${Environment.MINECRAFT_VERSION}!');
1616
#end
1717

18+
#if (minecraft >= "1.19.3")
19+
LOGGER.info('Minecraft is in 1.19.3 or 1.19.4');
20+
#else
21+
LOGGER.info('Minecraft is before 1.19.3 or 1.19.4');
22+
#end
23+
24+
#if (minecraft >= "1.19.4")
25+
LOGGER.info('Minecraft is in 1.19.4');
26+
#else
27+
LOGGER.info('Minecraft is before 1.19.4');
28+
#end
29+
1830
ModItems.onInitialize();
1931
}
2032
}

samples/made-in-haxe/src/com/elitemastereric/madeinhaxe/items/ModItems.hx

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class ModItems {
2121
// Item Groups
2222
public static final ITEM_GROUP:CreativeModeTab = FabricItemGroup.builder(new ResourceLocation(MadeInHaxeMod.MOD_ID, "made_in_haxe"))
2323
.icon(getCreativeTabIcon)
24-
.displayItems(new DisplayItemsGeneratorHaxe((enabledFeatures:FeatureFlagSet, entries:CreativeModeTabOutput, operatorEnabled:Bool) -> {
24+
.displayItems(DisplayItemsGeneratorHaxe.buildB((enabledFeatures:FeatureFlagSet, entries:CreativeModeTabOutput, operatorEnabled:Bool) -> {
2525
entries.accept(cast (HAXE_GLYPH, ItemLike));
2626
}))
2727
.build();

samples/obsidianarmor/src/com/elitemastereric/obsidianarmor/ObsidianArmorMod.hx

+12
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ class ObsidianArmorMod implements Mod {
1515
LOGGER.info('Hello Forge! Welcome to Minecraft ${Environment.MINECRAFT_VERSION}!');
1616
#end
1717

18+
#if (minecraft >= "1.19.3")
19+
LOGGER.info('Minecraft is in 1.19.3 or 1.19.4');
20+
#else
21+
LOGGER.info('Minecraft is before 1.19.3 or 1.19.4');
22+
#end
23+
24+
#if (minecraft >= "1.19.4")
25+
LOGGER.info('Minecraft is in 1.19.4');
26+
#else
27+
LOGGER.info('Minecraft is before 1.19.4');
28+
#end
29+
1830
ModItems.onInitialize();
1931

2032
//var test:net.minecraft.advancements.critereon.BlockPredicate = null;

samples/obsidianarmor/src/com/elitemastereric/obsidianarmor/items/ModItems.hx

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package com.elitemastereric.obsidianarmor.items;
22

3-
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
43
import com.elitemastereric.obsidianarmor.materials.ObsidianArmorMaterial;
54
import com.elitemastereric.obsidianarmor.materials.ObsidianToolMaterial;
65
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
76
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
87
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries;
8+
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
99
import net.minecraft.core.Registry;
1010
import net.minecraft.core.registries.BuiltInRegistries;
1111
import net.minecraft.resources.ResourceLocation;
1212
import net.minecraft.world.entity.EquipmentSlot;
13+
import net.minecraft.world.item.ArmorItem.ArmorItem_Type;
1314
import net.minecraft.world.item.ArmorItem;
1415
import net.minecraft.world.item.ArmorMaterial;
1516
import net.minecraft.world.item.AxeItem;
@@ -38,10 +39,10 @@ class ModItems {
3839

3940
// Armor
4041
public static final OBSIDIAN_ARMOR_MATERIAL:ArmorMaterial = new ObsidianArmorMaterial();
41-
public static final OBSIDIAN_HELMET:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, EquipmentSlot.HEAD, new Item_Properties().rarity(Rarity.RARE).fireResistant());
42-
public static final OBSIDIAN_CHESTPLATE:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, EquipmentSlot.CHEST, new Item_Properties().rarity(Rarity.RARE).fireResistant());
43-
public static final OBSIDIAN_LEGGINGS:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, EquipmentSlot.LEGS, new Item_Properties().rarity(Rarity.RARE).fireResistant());
44-
public static final OBSIDIAN_BOOTS:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, EquipmentSlot.FEET, new Item_Properties().rarity(Rarity.RARE).fireResistant());
42+
public static final OBSIDIAN_HELMET:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, ArmorItem_Type.HELMET, new Item_Properties().rarity(Rarity.RARE).fireResistant());
43+
public static final OBSIDIAN_CHESTPLATE:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, ArmorItem_Type.CHESTPLATE, new Item_Properties().rarity(Rarity.RARE).fireResistant());
44+
public static final OBSIDIAN_LEGGINGS:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, ArmorItem_Type.LEGGINGS, new Item_Properties().rarity(Rarity.RARE).fireResistant());
45+
public static final OBSIDIAN_BOOTS:Item = new ArmorItem(OBSIDIAN_ARMOR_MATERIAL, ArmorItem_Type.BOOTS, new Item_Properties().rarity(Rarity.RARE).fireResistant());
4546

4647
// Item Groups
4748
public static final ITEM_GROUP:CreativeModeTab = FabricItemGroup.builder(new ResourceLocation(ObsidianArmorMod.MOD_ID, "obsidian_armor"))

samples/obsidianarmor/src/com/elitemastereric/obsidianarmor/materials/ObsidianArmorMaterial.hx

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.elitemastereric.obsidianarmor.materials;
22

3+
import net.minecraft.world.item.ArmorItem.ArmorItem_Type;
34
import net.minecraft.sounds.SoundEvent;
45
import net.minecraft.sounds.SoundEvents;
56
import net.minecraft.world.entity.EquipmentSlot;
@@ -29,11 +30,21 @@ class ObsidianArmorMaterial implements ArmorMaterial
2930
return DURABILITY[slot.getIndex()];
3031
}
3132

33+
public function getDurabilityForType(type:ArmorItem_Type):Int
34+
{
35+
return DURABILITY[type.getSlot().getIndex()];
36+
}
37+
3238
public function getDefenseForSlot(slot:EquipmentSlot):Int
3339
{
3440
return PROTECTION[slot.getIndex()];
3541
}
3642

43+
public function getDefenseForType(type:ArmorItem_Type):Int
44+
{
45+
return PROTECTION[type.getSlot().getIndex()];
46+
}
47+
3748
public function getEnchantmentValue():Int
3849
{
3950
return ENCHANTABILITY;
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.mojang.blaze3d;
2+
3+
@:native("com.mojang.blaze3d.Blaze3D")
4+
@:mapping("net.minecraft.class_3673")
5+
extern class Blaze3D
6+
{
7+
public function new();
8+
@:mapping("method_35596")
9+
public static function process(pipeline:com.mojang.blaze3d.pipeline.RenderPipeline, unknown:Float):Void;
10+
@:mapping("method_35597")
11+
public static function render(pipeline:com.mojang.blaze3d.pipeline.RenderPipeline, unknown:Float):Void;
12+
@:mapping("method_15973")
13+
public static function youJustLostTheGame():Void;
14+
@:mapping("method_15974")
15+
public static function getTime():Float;
16+
}
17+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.mojang.blaze3d.audio;
2+
3+
@:native("com.mojang.blaze3d.audio.Channel")
4+
@:mapping("net.minecraft.class_4224")
5+
extern class Channel
6+
{
7+
8+
@:mapping("field_31894")
9+
public static final BUFFER_DURATION_SECONDS:Int;
10+
11+
12+
13+
14+
@:mapping("method_19638")
15+
static function create():Null<com.mojang.blaze3d.audio.Channel>;
16+
17+
@:mapping("method_19646")
18+
public function destroy():Void;
19+
@:mapping("method_19650")
20+
public function play():Void;
21+
22+
@:mapping("method_19653")
23+
public function pause():Void;
24+
@:mapping("method_19654")
25+
public function unpause():Void;
26+
@:mapping("method_19655")
27+
public function stop():Void;
28+
@:mapping("method_35598")
29+
public function playing():Bool;
30+
@:mapping("method_19656")
31+
public function stopped():Bool;
32+
@:mapping("method_19641")
33+
public function setSelfPosition(source:net.minecraft.world.phys.Vec3):Void;
34+
@:mapping("method_19639")
35+
public function setPitch(pitch:Float):Void;
36+
@:mapping("method_19645")
37+
public function setLooping(looping:Bool):Void;
38+
@:mapping("method_19647")
39+
public function setVolume(volume:Float):Void;
40+
@:mapping("method_19657")
41+
public function disableAttenuation():Void;
42+
@:mapping("method_19651")
43+
public function linearAttenuation(linearAttenuation:Float):Void;
44+
@:mapping("method_19649")
45+
public function setRelative(relative:Bool):Void;
46+
@:mapping("method_19642")
47+
public function attachStaticBuffer(buffer:com.mojang.blaze3d.audio.SoundBuffer):Void;
48+
@:mapping("method_19643")
49+
public function attachBufferStream(stream:net.minecraft.client.sounds.AudioStream):Void;
50+
51+
52+
@:mapping("method_19658")
53+
public function updateStream():Void;
54+
55+
}
56+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package com.mojang.blaze3d.audio;
2+
3+
@:native("com.mojang.blaze3d.audio.Library")
4+
@:mapping("net.minecraft.class_4225")
5+
extern class Library
6+
{
7+
8+
9+
10+
11+
12+
13+
14+
15+
16+
17+
public function new();
18+
@:badMapping("unknownMethodMapping")
19+
@:mapping("com.mojang.blaze3d.audio.Library#init(String,boolean)")
20+
public function init(deviceSpecifier:Null<String>, bl:Bool):Void;
21+
22+
23+
@:mapping("method_38500")
24+
public static function getDefaultDeviceName():Null<String>;
25+
@:mapping("method_38722")
26+
public function getCurrentDeviceName():String;
27+
@:mapping("method_38723")
28+
public function hasDefaultDeviceChanged():Bool;
29+
30+
31+
@:mapping("method_19664")
32+
public function cleanup():Void;
33+
@:mapping("method_19665")
34+
public function getListener():com.mojang.blaze3d.audio.Listener;
35+
/**
36+
* Acquires a sound channel based on the given mode.
37+
*/
38+
@:mapping("method_19663")
39+
public function acquireChannel(pool:com.mojang.blaze3d.audio.Library.Pool):Null<com.mojang.blaze3d.audio.Channel>;
40+
@:mapping("method_19662")
41+
public function releaseChannel(channel:com.mojang.blaze3d.audio.Channel):Void;
42+
@:mapping("method_20296")
43+
public function getDebugString():String;
44+
@:mapping("method_38502")
45+
public function getAvailableSoundDevices():java.util.List<String>;
46+
@:mapping("method_38724")
47+
public function isCurrentDeviceDisconnected():Bool;
48+
}
49+
50+
51+
@:native("com.mojang.blaze3d.audio.Library$ChannelPool")
52+
@:mapping("net.minecraft.class_4225$class_4276")
53+
extern interface Library_ChannelPool
54+
{
55+
@:mapping("method_19666")
56+
public function acquire():Null<com.mojang.blaze3d.audio.Channel>;
57+
@:mapping("method_19667")
58+
public function release(var1:com.mojang.blaze3d.audio.Channel):Bool;
59+
@:mapping("method_19668")
60+
public function cleanup():Void;
61+
@:mapping("method_20298")
62+
public function getMaxCount():Int;
63+
@:mapping("method_20299")
64+
public function getUsedCount():Int;
65+
}
66+
typedef ChannelPool = Library_ChannelPool;
67+
68+
69+
@:native("com.mojang.blaze3d.audio.Library$CountingChannelPool")
70+
@:realPath("com.mojang.blaze3d.audio.Library_CountingChannelPool")
71+
@:mapping("net.minecraft.class_4225$class_4226")
72+
extern class Library_CountingChannelPool implements com.mojang.blaze3d.audio.Library.ChannelPool
73+
{
74+
75+
public function new(i:Int);
76+
@:mapping("method_19666")
77+
public function acquire():Null<com.mojang.blaze3d.audio.Channel>;
78+
@:mapping("method_19667")
79+
public function release(channel:com.mojang.blaze3d.audio.Channel):Bool;
80+
@:mapping("method_19668")
81+
public function cleanup():Void;
82+
@:mapping("method_20298")
83+
public function getMaxCount():Int;
84+
@:mapping("method_20299")
85+
public function getUsedCount():Int;
86+
}
87+
typedef CountingChannelPool = Library_CountingChannelPool;
88+
89+
90+
@:native("com.mojang.blaze3d.audio.Library$Pool")
91+
@:mapping("net.minecraft.class_4225$class_4105")
92+
final extern class Library_Pool extends java.lang.Enum<com.mojang.blaze3d.audio.Library.Pool>
93+
{
94+
public static function values():Array<com.mojang.blaze3d.audio.Library.Pool>;
95+
public static function valueOf(name:String):com.mojang.blaze3d.audio.Library.Pool;
96+
97+
@:mapping("field_18352")
98+
public static var STATIC:com.mojang.blaze3d.audio.Library.Pool;
99+
100+
@:mapping("field_18353")
101+
public static var STREAMING:com.mojang.blaze3d.audio.Library.Pool;
102+
103+
}
104+
typedef Pool = Library_Pool;
105+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.mojang.blaze3d.audio;
2+
3+
@:native("com.mojang.blaze3d.audio.Listener")
4+
@:mapping("net.minecraft.class_4227")
5+
extern class Listener
6+
{
7+
public function new();
8+
9+
10+
@:mapping("method_19671")
11+
public function setListenerPosition(position:net.minecraft.world.phys.Vec3):Void;
12+
@:mapping("method_27268")
13+
public function getListenerPosition():net.minecraft.world.phys.Vec3;
14+
@:mapping("method_19672")
15+
public function setListenerOrientation(clientViewVector:org.joml.Vector3f, viewVectorRaised:org.joml.Vector3f):Void;
16+
@:mapping("method_19670")
17+
public function setGain(gain:Float):Void;
18+
@:mapping("method_19669")
19+
public function getGain():Float;
20+
@:mapping("method_19673")
21+
public function reset():Void;
22+
}
23+

0 commit comments

Comments
 (0)