移植进度
This commit is contained in:
parent
fa07e0d909
commit
b8297e9614
25 changed files with 948 additions and 5 deletions
|
@ -0,0 +1,17 @@
|
||||||
|
// 1.21.1 2025-04-04T15:18:11.251884 Superb Warfare Advancements
|
||||||
|
03d6ad4d0bdd3ba66b765dcae9705692070e7f94 data/superbwarfare/advancement/main/ancient_technology.json
|
||||||
|
d24849d7fc09d8cc9a27203e57f1fd42f72a27a7 data/superbwarfare/advancement/main/banzai.json
|
||||||
|
70bd4fa04553c415c80656c4b07cf3814a13110c data/superbwarfare/advancement/main/best_friend.json
|
||||||
|
a36b5cb81c0038d909b2b90da89abed15268e750 data/superbwarfare/advancement/main/blueprint.json
|
||||||
|
120bd3b36a2c561d4e54e860afa4a9900936129e data/superbwarfare/advancement/main/boomstick_melee.json
|
||||||
|
6be355a5d8c94c2638163394c48905365b8d4146 data/superbwarfare/advancement/main/cannon_blueprint.json
|
||||||
|
57bb19a6713a0da6c5b46ac13f603463a755ced5 data/superbwarfare/advancement/main/clean_energy.json
|
||||||
|
39d859d779a4807144ecb87c91e60ac193812133 data/superbwarfare/advancement/main/common_blueprint.json
|
||||||
|
c051b49513bac2be82c2c24e236734a5c3a358c8 data/superbwarfare/advancement/main/enclave.json
|
||||||
|
5ac1ed91c7e49a728ab0174e3b828998bfd94801 data/superbwarfare/advancement/main/epic_blueprint.json
|
||||||
|
47b2d8bd5335e224be175f09b49fcbd4aafa4cf6 data/superbwarfare/advancement/main/hammer.json
|
||||||
|
926900f8c598a039ffbf8cac552f397c522f82c7 data/superbwarfare/advancement/main/legendary_blueprint.json
|
||||||
|
52417b43fbf1ca3a41d95ee51eafdc4f734bfaa3 data/superbwarfare/advancement/main/physics_excalibur.json
|
||||||
|
392baba1930be09abc70836090c884ad4ada82e8 data/superbwarfare/advancement/main/rare_blueprint.json
|
||||||
|
2df388bd7a8e6d162d005aff3bd4892763549ccd data/superbwarfare/advancement/main/root.json
|
||||||
|
6855de73219722b4e44985c87f2d57d71cfd7e15 data/superbwarfare/advancement/main/super_container.json
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:ancient_cpu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.ancient_technology.des"
|
||||||
|
},
|
||||||
|
"frame": "goal",
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:ancient_cpu"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.ancient_technology"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:lunge_mine"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.banzai.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:lunge_mine"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.banzai"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:claymore_mine"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.best_friend.des"
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:claymore_mine"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.best_friend"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "#superbwarfare:blueprint"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.blueprint.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:trachelium_blueprint"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.blueprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"trigger": "superbwarfare:rpg_melee_explosion"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.boomstick_melee.des"
|
||||||
|
},
|
||||||
|
"frame": "challenge",
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:rocket"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.boomstick_melee"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/blueprint",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "#superbwarfare:blueprint/cannon"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.cannon_blueprint.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:mk_42_blueprint"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.cannon_blueprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/physics_excalibur",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:charging_station"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.clean_energy.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:charging_station"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.clean_energy"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/blueprint",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "#superbwarfare:blueprint/common"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.common_blueprint.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:trachelium_blueprint"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.common_blueprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/ancient_technology",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:reforging_table"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.enclave.des"
|
||||||
|
},
|
||||||
|
"frame": "goal",
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:reforging_table"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.enclave"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/rare_blueprint",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "#superbwarfare:blueprint/epic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.epic_blueprint.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:trachelium_blueprint"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.epic_blueprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:hammer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.hammer.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:hammer"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.hammer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/epic_blueprint",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "#superbwarfare:blueprint/legendary"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.legendary_blueprint.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:trachelium_blueprint"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.legendary_blueprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/root",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:crowbar"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.physics_excalibur.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:crowbar"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.physics_excalibur"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/common_blueprint",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "#superbwarfare:blueprint/rare"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.rare_blueprint.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:trachelium_blueprint"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.rare_blueprint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"announce_to_chat": false,
|
||||||
|
"background": "superbwarfare:textures/block/sandbag.png",
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.root.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:taser"
|
||||||
|
},
|
||||||
|
"show_toast": false,
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.root"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:main/clean_energy",
|
||||||
|
"criteria": {
|
||||||
|
"0": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "superbwarfare:container"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "superbwarfare.advancement.main.super_container.des"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "superbwarfare:container"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "superbwarfare.advancement.main.super_container"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -55,6 +55,7 @@ public class Mod {
|
||||||
ModRecipes.RECIPE_SERIALIZERS.register(bus);
|
ModRecipes.RECIPE_SERIALIZERS.register(bus);
|
||||||
ModArmorMaterials.MATERIALS.register(bus);
|
ModArmorMaterials.MATERIALS.register(bus);
|
||||||
ModAttributes.ATTRIBUTES.register(bus);
|
ModAttributes.ATTRIBUTES.register(bus);
|
||||||
|
ModCriteriaTriggers.REGISTRY.register(bus);
|
||||||
|
|
||||||
// bus.addListener(this::onCommonSetup);
|
// bus.addListener(this::onCommonSetup);
|
||||||
bus.addListener(this::onClientSetup);
|
bus.addListener(this::onClientSetup);
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.atsuishio.superbwarfare.advancement.criteria;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.init.ModCriteriaTriggers;
|
||||||
|
import com.mojang.serialization.Codec;
|
||||||
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
|
import net.minecraft.advancements.Criterion;
|
||||||
|
import net.minecraft.advancements.critereon.ContextAwarePredicate;
|
||||||
|
import net.minecraft.advancements.critereon.EntityPredicate;
|
||||||
|
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public class RPGMeleeExplosionTrigger extends SimpleCriterionTrigger<RPGMeleeExplosionTrigger.TriggerInstance> {
|
||||||
|
|
||||||
|
public void trigger(ServerPlayer pPlayer) {
|
||||||
|
this.trigger(pPlayer, instance -> true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Codec<TriggerInstance> codec() {
|
||||||
|
return TriggerInstance.CODEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public record TriggerInstance(
|
||||||
|
Optional<ContextAwarePredicate> player) implements SimpleCriterionTrigger.SimpleInstance {
|
||||||
|
|
||||||
|
public static final Codec<RPGMeleeExplosionTrigger.TriggerInstance> CODEC = RecordCodecBuilder.create((instance) ->
|
||||||
|
instance.group(EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player")
|
||||||
|
.forGetter(RPGMeleeExplosionTrigger.TriggerInstance::player)).apply(instance, TriggerInstance::new));
|
||||||
|
|
||||||
|
public static Criterion<RPGMeleeExplosionTrigger.TriggerInstance> get() {
|
||||||
|
return ModCriteriaTriggers.RPG_MELEE_EXPLOSION.get().createCriterion(new TriggerInstance(Optional.empty()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<ContextAwarePredicate> player() {
|
||||||
|
return this.player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -28,6 +28,6 @@ public class DataGenerators {
|
||||||
ModBlockTagProvider tagProvider = generator.addProvider(event.includeServer(), new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper));
|
ModBlockTagProvider tagProvider = generator.addProvider(event.includeServer(), new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper));
|
||||||
generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, tagProvider.contentsGetter(), existingFileHelper));
|
generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, tagProvider.contentsGetter(), existingFileHelper));
|
||||||
generator.addProvider(event.includeServer(), new ModDamageTypeTagProvider(packOutput, lookupProvider, existingFileHelper));
|
generator.addProvider(event.includeServer(), new ModDamageTypeTagProvider(packOutput, lookupProvider, existingFileHelper));
|
||||||
// generator.addProvider(event.includeServer(), new ModAdvancementProvider(packOutput, existingFileHelper));
|
generator.addProvider(event.includeServer(), new ModAdvancementProvider(packOutput, lookupProvider, existingFileHelper));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,197 @@
|
||||||
|
package com.atsuishio.superbwarfare.datagen;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
|
import net.minecraft.advancements.*;
|
||||||
|
import net.minecraft.advancements.critereon.*;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.tags.TagKey;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.ItemLike;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.UnaryOperator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Codes Based on @Create
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public class ModAdvancement {
|
||||||
|
|
||||||
|
public static final ResourceLocation MAIN_BACKGROUND = Mod.loc("textures/block/sandbag.png");
|
||||||
|
public static final ResourceLocation LEGENDARY_BACKGROUND = Mod.loc("textures/block/steel_block.png");
|
||||||
|
|
||||||
|
private final Advancement.Builder builder;
|
||||||
|
private ModAdvancement parent;
|
||||||
|
public AdvancementHolder result;
|
||||||
|
private final String id;
|
||||||
|
private final Group group;
|
||||||
|
|
||||||
|
public ModAdvancement(String id, UnaryOperator<Builder> b) {
|
||||||
|
this.builder = Advancement.Builder.advancement();
|
||||||
|
this.id = id;
|
||||||
|
|
||||||
|
Builder builtInBuilder = new Builder();
|
||||||
|
b.apply(builtInBuilder);
|
||||||
|
this.group = builtInBuilder.group;
|
||||||
|
|
||||||
|
Optional<ResourceLocation> bg = Optional.empty();
|
||||||
|
if (id.equals("root")) {
|
||||||
|
if (group == Group.MAIN) {
|
||||||
|
bg = Optional.of(MAIN_BACKGROUND);
|
||||||
|
}
|
||||||
|
if (group == Group.LEGENDARY) {
|
||||||
|
bg = Optional.of(LEGENDARY_BACKGROUND);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.display(new DisplayInfo(builtInBuilder.icon, titleComponent(),
|
||||||
|
Component.translatable(description()), bg,
|
||||||
|
builtInBuilder.type.frame, builtInBuilder.type.toast, builtInBuilder.type.announce, builtInBuilder.type.hide));
|
||||||
|
|
||||||
|
ModAdvancementProvider.ADVANCEMENTS.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String title() {
|
||||||
|
return Mod.MODID + ".advancement." + group.path + "." + id;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Component titleComponent() {
|
||||||
|
if (this.group == Group.LEGENDARY && !this.id.equals("root")) {
|
||||||
|
return Component.translatable(title()).withStyle(ChatFormatting.GOLD);
|
||||||
|
}
|
||||||
|
return Component.translatable(title());
|
||||||
|
}
|
||||||
|
|
||||||
|
private String description() {
|
||||||
|
return title() + ".des";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void save(Consumer<AdvancementHolder> t) {
|
||||||
|
if (parent != null) {
|
||||||
|
builder.parent(parent.result);
|
||||||
|
}
|
||||||
|
|
||||||
|
AdvancementHolder advancementholder = builder.build(Mod.loc(group.path + "/" + id));
|
||||||
|
t.accept(advancementholder);
|
||||||
|
result = advancementholder;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Type {
|
||||||
|
DEFAULT(AdvancementType.TASK, true, true, false),
|
||||||
|
DEFAULT_NO_ANNOUNCE(AdvancementType.TASK, true, false, false),
|
||||||
|
DEFAULT_CHALLENGE(AdvancementType.CHALLENGE, true, true, false),
|
||||||
|
SILENT(AdvancementType.TASK, false, false, false),
|
||||||
|
GOAL(AdvancementType.GOAL, true, true, false),
|
||||||
|
SECRET(AdvancementType.TASK, true, true, true),
|
||||||
|
SECRET_CHALLENGE(AdvancementType.CHALLENGE, true, true, true);
|
||||||
|
|
||||||
|
private final AdvancementType frame;
|
||||||
|
private final boolean toast;
|
||||||
|
private final boolean announce;
|
||||||
|
private final boolean hide;
|
||||||
|
|
||||||
|
Type(AdvancementType frame, boolean toast, boolean announce, boolean hide) {
|
||||||
|
this.frame = frame;
|
||||||
|
this.toast = toast;
|
||||||
|
this.announce = announce;
|
||||||
|
this.hide = hide;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Group {
|
||||||
|
MAIN("main"),
|
||||||
|
LEGENDARY("legendary");
|
||||||
|
|
||||||
|
public final String path;
|
||||||
|
|
||||||
|
Group(String path) {
|
||||||
|
this.path = path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Builder {
|
||||||
|
|
||||||
|
private Type type = Type.DEFAULT;
|
||||||
|
private int keyIndex;
|
||||||
|
private ItemStack icon;
|
||||||
|
private Group group = Group.MAIN;
|
||||||
|
|
||||||
|
Builder type(Type type) {
|
||||||
|
this.type = type;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder parent(ModAdvancement other) {
|
||||||
|
ModAdvancement.this.parent = other;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder icon(ItemLike item) {
|
||||||
|
return icon(new ItemStack(item));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder icon(ItemStack stack) {
|
||||||
|
icon = stack;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenBlockPlaced(Block block) {
|
||||||
|
return externalTrigger(ItemUsedOnLocationTrigger.TriggerInstance.placedBlock(block));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenIconCollected() {
|
||||||
|
return externalTrigger(InventoryChangeTrigger.TriggerInstance.hasItems(icon.getItem()));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenItemCollected(ItemLike itemProvider) {
|
||||||
|
return externalTrigger(InventoryChangeTrigger.TriggerInstance.hasItems(itemProvider));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenItemCollected(TagKey<Item> tag) {
|
||||||
|
return externalTrigger(InventoryChangeTrigger.TriggerInstance
|
||||||
|
.hasItems(ItemPredicate.Builder.item().of(tag).build()));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenItemConsumed(ItemLike itemProvider) {
|
||||||
|
return externalTrigger(ConsumeItemTrigger.TriggerInstance.usedItem(itemProvider));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenIconConsumed() {
|
||||||
|
return externalTrigger(ConsumeItemTrigger.TriggerInstance.usedItem(icon.getItem()));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder awardedForFree() {
|
||||||
|
return externalTrigger(InventoryChangeTrigger.TriggerInstance.hasItems(new ItemLike[]{}));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder whenEffectChanged(MobEffectsPredicate.Builder predicate) {
|
||||||
|
return externalTrigger(EffectsChangedTrigger.TriggerInstance.hasEffects(predicate));
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder externalTrigger(Criterion<?> trigger) {
|
||||||
|
builder.addCriterion(String.valueOf(keyIndex), trigger);
|
||||||
|
keyIndex++;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder requirement(AdvancementRequirements requirements) {
|
||||||
|
builder.requirements(requirements);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder group(Group group) {
|
||||||
|
this.group = group;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Builder rewardExp(int exp) {
|
||||||
|
builder.rewards(AdvancementRewards.Builder.experience(exp).build());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,151 @@
|
||||||
|
package com.atsuishio.superbwarfare.datagen;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
|
import net.minecraft.advancements.Advancement;
|
||||||
|
import net.minecraft.advancements.AdvancementHolder;
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.data.CachedOutput;
|
||||||
|
import net.minecraft.data.DataProvider;
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.PackType;
|
||||||
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.UnaryOperator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Codes Based on @Create
|
||||||
|
*/
|
||||||
|
public class ModAdvancementProvider implements DataProvider {
|
||||||
|
|
||||||
|
private final PackOutput packOutput;
|
||||||
|
private final ExistingFileHelper existingFileHelper;
|
||||||
|
private final CompletableFuture<HolderLookup.Provider> registries;
|
||||||
|
|
||||||
|
public static final List<ModAdvancement> ADVANCEMENTS = new ArrayList<>();
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public static ModAdvancement START = null,
|
||||||
|
/**
|
||||||
|
* Main
|
||||||
|
*/
|
||||||
|
MAIN_ROOT = advancement("root", builder -> builder.icon(ModItems.TASER.get())
|
||||||
|
.type(ModAdvancement.Type.SILENT)
|
||||||
|
.awardedForFree()),
|
||||||
|
|
||||||
|
BEST_FRIEND = advancement("best_friend", builder -> builder.icon(ModItems.CLAYMORE_MINE.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.type(ModAdvancement.Type.SECRET)
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
BANZAI = advancement("banzai", builder -> builder.icon(ModItems.LUNGE_MINE.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
HAMMER = advancement("hammer", builder -> builder.icon(ModItems.HAMMER.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
PHYSICS_EXCALIBUR = advancement("physics_excalibur", builder -> builder.icon(ModItems.CROWBAR.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
CLEAN_ENERGY = advancement("clean_energy", builder -> builder.icon(ModItems.CHARGING_STATION.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.parent(PHYSICS_EXCALIBUR)),
|
||||||
|
|
||||||
|
SUPER_CONTAINER = advancement("super_container", builder -> builder.icon(ModItems.CONTAINER.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.parent(CLEAN_ENERGY)),
|
||||||
|
|
||||||
|
// 蓝图
|
||||||
|
BLUEPRINT = advancement("blueprint", builder -> builder.icon(ModItems.TRACHELIUM_BLUEPRINT.get())
|
||||||
|
.whenItemCollected(ModTags.Items.BLUEPRINT)
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
COMMON_BLUEPRINT = advancement("common_blueprint", builder -> builder.icon(ModItems.TRACHELIUM_BLUEPRINT.get())
|
||||||
|
.whenItemCollected(ModTags.Items.COMMON_BLUEPRINT)
|
||||||
|
.parent(BLUEPRINT)),
|
||||||
|
|
||||||
|
RARE_BLUEPRINT = advancement("rare_blueprint", builder -> builder.icon(ModItems.TRACHELIUM_BLUEPRINT.get())
|
||||||
|
.whenItemCollected(ModTags.Items.RARE_BLUEPRINT)
|
||||||
|
.parent(COMMON_BLUEPRINT)),
|
||||||
|
|
||||||
|
EPIC_BLUEPRINT = advancement("epic_blueprint", builder -> builder.icon(ModItems.TRACHELIUM_BLUEPRINT.get())
|
||||||
|
.whenItemCollected(ModTags.Items.EPIC_BLUEPRINT)
|
||||||
|
.parent(RARE_BLUEPRINT)),
|
||||||
|
|
||||||
|
LEGENDARY_BLUEPRINT = advancement("legendary_blueprint", builder -> builder.icon(ModItems.TRACHELIUM_BLUEPRINT.get())
|
||||||
|
.whenItemCollected(ModTags.Items.LEGENDARY_BLUEPRINT)
|
||||||
|
.parent(EPIC_BLUEPRINT)),
|
||||||
|
|
||||||
|
CANNON_BLUEPRINT = advancement("cannon_blueprint", builder -> builder.icon(ModItems.MK_42_BLUEPRINT.get())
|
||||||
|
.whenItemCollected(ModTags.Items.CANNON_BLUEPRINT)
|
||||||
|
.parent(BLUEPRINT)),
|
||||||
|
|
||||||
|
// 古代芯片
|
||||||
|
ANCIENT_TECHNOLOGY = advancement("ancient_technology", builder -> builder.icon(ModItems.ANCIENT_CPU.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.type(ModAdvancement.Type.GOAL)
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
ENCLAVE = advancement("enclave", builder -> builder.icon(ModItems.REFORGING_TABLE.get())
|
||||||
|
.whenIconCollected()
|
||||||
|
.type(ModAdvancement.Type.GOAL)
|
||||||
|
.parent(ANCIENT_TECHNOLOGY)),
|
||||||
|
|
||||||
|
// 哑弹棒(?)
|
||||||
|
BOOMSTICK_MELEE = advancement("boomstick_melee", builder -> builder.icon(ModItems.ROCKET.get())
|
||||||
|
.externalTrigger(RPGMeleeExplosionTrigger.TriggerInstance.get())
|
||||||
|
.type(ModAdvancement.Type.SECRET_CHALLENGE)
|
||||||
|
.parent(MAIN_ROOT)),
|
||||||
|
|
||||||
|
END = null;
|
||||||
|
|
||||||
|
|
||||||
|
public ModAdvancementProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, ExistingFileHelper existingFileHelper) {
|
||||||
|
this.packOutput = output;
|
||||||
|
this.existingFileHelper = existingFileHelper;
|
||||||
|
this.registries = lookupProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ModAdvancement advancement(String id, UnaryOperator<ModAdvancement.Builder> b) {
|
||||||
|
return new ModAdvancement(id, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull CompletableFuture<?> run(@NotNull CachedOutput output) {
|
||||||
|
List<CompletableFuture<?>> futures = new ArrayList<>();
|
||||||
|
PackOutput.PathProvider pathProvider = packOutput.createPathProvider(PackOutput.Target.DATA_PACK, "advancement");
|
||||||
|
|
||||||
|
return this.registries.thenCompose(provider -> {
|
||||||
|
Consumer<AdvancementHolder> consumer = advancementHolder -> {
|
||||||
|
ResourceLocation id = advancementHolder.id();
|
||||||
|
if (existingFileHelper.exists(id, PackType.SERVER_DATA, ".json", "advancement")) {
|
||||||
|
throw new IllegalStateException("Duplicate advancement " + id);
|
||||||
|
}
|
||||||
|
Path path = pathProvider.json(advancementHolder.id());
|
||||||
|
futures.add(DataProvider.saveStable(output, provider, Advancement.CODEC, advancementHolder.value(), path));
|
||||||
|
};
|
||||||
|
|
||||||
|
for (ModAdvancement advancement : ADVANCEMENTS) {
|
||||||
|
advancement.save(consumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NotNull String getName() {
|
||||||
|
return "Superb Warfare Advancements";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.atsuishio.superbwarfare.init;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.advancement.criteria.RPGMeleeExplosionTrigger;
|
||||||
|
import net.minecraft.advancements.CriterionTrigger;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class ModCriteriaTriggers {
|
||||||
|
|
||||||
|
public static final DeferredRegister<CriterionTrigger<?>> REGISTRY = DeferredRegister.create(Registries.TRIGGER_TYPE, Mod.MODID);
|
||||||
|
|
||||||
|
public static final Supplier<RPGMeleeExplosionTrigger> RPG_MELEE_EXPLOSION = REGISTRY.register("rpg_melee_explosion", RPGMeleeExplosionTrigger::new);
|
||||||
|
}
|
|
@ -12,7 +12,7 @@ import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class ModRecipes {
|
public class ModRecipes {
|
||||||
// TODO recipe serializer 为什么无效
|
|
||||||
public static final DeferredRegister<RecipeSerializer<?>> RECIPE_SERIALIZERS = DeferredRegister.create(BuiltInRegistries.RECIPE_SERIALIZER, Mod.MODID);
|
public static final DeferredRegister<RecipeSerializer<?>> RECIPE_SERIALIZERS = DeferredRegister.create(BuiltInRegistries.RECIPE_SERIALIZER, Mod.MODID);
|
||||||
|
|
||||||
public static final DeferredHolder<RecipeSerializer<?>, RecipeSerializer<PotionMortarShellRecipe>> POTION_MORTAR_SHELL_SERIALIZER =
|
public static final DeferredHolder<RecipeSerializer<?>, RecipeSerializer<PotionMortarShellRecipe>> POTION_MORTAR_SHELL_SERIALIZER =
|
||||||
|
@ -22,5 +22,4 @@ public class ModRecipes {
|
||||||
RECIPE_SERIALIZERS.register("ammo_box_add_ammo", () -> new SimpleCraftingRecipeSerializer<>(AmmoBoxAddAmmoRecipe::new));
|
RECIPE_SERIALIZERS.register("ammo_box_add_ammo", () -> new SimpleCraftingRecipeSerializer<>(AmmoBoxAddAmmoRecipe::new));
|
||||||
public static final DeferredHolder<RecipeSerializer<?>, SimpleCraftingRecipeSerializer<AmmoBoxExtractAmmoRecipe>> AMMO_BOX_EXTRACT_AMMO_SERIALIZER =
|
public static final DeferredHolder<RecipeSerializer<?>, SimpleCraftingRecipeSerializer<AmmoBoxExtractAmmoRecipe>> AMMO_BOX_EXTRACT_AMMO_SERIALIZER =
|
||||||
RECIPE_SERIALIZERS.register("ammo_box_extract_ammo", () -> new SimpleCraftingRecipeSerializer<>(AmmoBoxExtractAmmoRecipe::new));
|
RECIPE_SERIALIZERS.register("ammo_box_extract_ammo", () -> new SimpleCraftingRecipeSerializer<>(AmmoBoxExtractAmmoRecipe::new));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.atsuishio.superbwarfare.Mod;
|
||||||
import com.atsuishio.superbwarfare.client.PoseTool;
|
import com.atsuishio.superbwarfare.client.PoseTool;
|
||||||
import com.atsuishio.superbwarfare.client.renderer.item.RocketItemRenderer;
|
import com.atsuishio.superbwarfare.client.renderer.item.RocketItemRenderer;
|
||||||
import com.atsuishio.superbwarfare.entity.projectile.RpgRocketEntity;
|
import com.atsuishio.superbwarfare.entity.projectile.RpgRocketEntity;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModCriteriaTriggers;
|
||||||
import com.atsuishio.superbwarfare.init.ModEntities;
|
import com.atsuishio.superbwarfare.init.ModEntities;
|
||||||
import com.atsuishio.superbwarfare.init.ModItems;
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
||||||
|
@ -112,8 +113,7 @@ public class Rocket extends Item implements GeoItem, ProjectileItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source instanceof ServerPlayer player) {
|
if (source instanceof ServerPlayer player) {
|
||||||
// TODO criteria
|
ModCriteriaTriggers.RPG_MELEE_EXPLOSION.get().trigger(player);
|
||||||
// CriteriaRegister.RPG_MELEE_EXPLOSION.trigger(player);
|
|
||||||
if (!player.isCreative()) {
|
if (!player.isCreative()) {
|
||||||
stack.shrink(1);
|
stack.shrink(1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue