Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"config.jade.plugin_anvilcraft_pigsplus.electric_enchanting_table": "ǝןqɐ⟘ buıʇuɐɥɔuƎ ɔıɹʇɔǝןƎ",
"config.jade.plugin_anvilcraft_pigsplus.enchanted_generator": "ɹoʇɐɹǝuǝ⅁ pǝʇuɐɥɔuƎ",
"item.anvilcraft_pigsplus.chaotic_raw_ore": "ǝɹO ʍɐᴚ ɔıʇoɐɥƆ",
"item.anvilcraft_pigsplus.ender_component": "ʇuǝuodɯoƆ ɹǝpuƎ",
"item.anvilcraft_pigsplus.karakuri_component": "ʇuǝuodɯoƆ ıɹnʞɐɹɐʞ",
"item.anvilcraft_pigsplus.spiritual_component": "ʇuǝuodɯoƆ ןɐnʇıɹıdS",
"itemGroup.anvilcraft_pigsplus.addon_items": "snןԀ sbıԀ :ʇɟɐɹƆןıʌuⱯ",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"config.jade.plugin_anvilcraft_pigsplus.electric_enchanting_table": "Electric Enchanting Table",
"config.jade.plugin_anvilcraft_pigsplus.enchanted_generator": "Enchanted Generator",
"item.anvilcraft_pigsplus.chaotic_raw_ore": "Chaotic Raw Ore",
"item.anvilcraft_pigsplus.ender_component": "Ender Component",
"item.anvilcraft_pigsplus.karakuri_component": "Karakuri Component",
"item.anvilcraft_pigsplus.spiritual_component": "Spiritual Component",
"itemGroup.anvilcraft_pigsplus.addon_items": "AnvilCraft: Pigs Plus",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "anvilcraft_pigsplus:item/ender_component"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_the_recipe": {
"conditions": {
"recipe": "anvilcraft:time_warp/ender_component"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"anvilcraft:time_warp/ender_component"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"type": "anvilcraft:time_warp",
"ingredients": [
{
"items": "anvilcraft_pigsplus:karakuri_component"
},
{
"items": "minecraft:ender_pearl"
},
{
"count": 3,
"items": "minecraft:end_stone"
}
],
"results": [
{
"count": {
"type": "minecraft:binomial",
"n": 1.0,
"p": 0.2
},
"id": "anvilcraft_pigsplus:ender_component"
},
{
"id": "anvilcraft:levitation_powder"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ public class AdjustablePowerConverterBlock extends BetterBaseEntityBlock impleme
public AdjustablePowerConverterBlock(Properties properties) {
super(properties);
this.registerDefaultState(this.stateDefinition.any()
.setValue(POWERED, false)
.setValue(OVERLOAD, true));
.setValue(POWERED, false)
.setValue(OVERLOAD, true));
}

@Override
Expand Down Expand Up @@ -64,14 +64,23 @@ public InteractionResult use(
}
return InteractionResult.SUCCESS;
}

@Nullable
@Override
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, BlockState state, BlockEntityType<T> type) {
if (level.isClientSide) {
return null;
return createTickerHelper(
type,
AddonBlockEntities.ADJUSTABLE_POWER_CONVERTER.get(),
(level1, blockPos, blockState, blockEntity) -> blockEntity.clientTick()
);
} else {
return createTickerHelper(
type,
AddonBlockEntities.ADJUSTABLE_POWER_CONVERTER.get(),
(level1, blockPos, blockState, blockEntity) -> blockEntity.tick()
);
}
return createTickerHelper(type, AddonBlockEntities.ADJUSTABLE_POWER_CONVERTER.get(),
(level1, blockPos, blockState, blockEntity) -> blockEntity.tick());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ public class AdjustablePowerConverterBlockEntity extends BlockEntity
@Setter
private int powerTarget = 16;

private int time = 0;

public final EnergyStorage feEnergy = new EnergyStorage(128000000);

public AdjustablePowerConverterBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState blockState) {
Expand Down Expand Up @@ -88,11 +90,15 @@ public int getInputPower() {
public PowerComponentType getComponentType() {
return this.power >= 0 ? PowerComponentType.PRODUCER : PowerComponentType.CONSUMER;
}

@Override
public int getRange() {
return 2;
}

public void clientTick() {
time += 1;
}

public void tick() {
if (level == null || level.isClientSide()) return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import org.jetbrains.annotations.NotNull;

@Mod(value = AnvilCraftPigsPlus.MOD_ID, dist = Dist.CLIENT)
public class AnvilCraftPigsPlusClient {
public AnvilCraftPigsPlusClient(@NotNull IEventBus modBus, @NotNull ModContainer container) {
public AnvilCraftPigsPlusClient(IEventBus modBus, ModContainer container) {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ public class RegisterAdditionalEventListener {
@SubscribeEvent
public static void registerModels(ModelEvent.RegisterAdditional event) {
event.register(ModelResourceLocation.standalone(AnvilCraftPigsPlus.of("block/enchanted_generator_head")));
event.register(ModelResourceLocation.standalone(AnvilCraftPigsPlus.of("block/adjustable_power_converter_core")));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package dev.anvilcraft.pigsplus.client.renderer.blockentity;

import dev.anvilcraft.pigsplus.AnvilCraftPigsPlus;
import dev.anvilcraft.pigsplus.block.entity.AdjustablePowerConverterBlockEntity;
import dev.dubhe.anvilcraft.client.renderer.blockentity.PowerProducerRenderer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.resources.model.ModelResourceLocation;

public class AdjustablePowerConverterRenderer extends PowerProducerRenderer<AdjustablePowerConverterBlockEntity> {
public static final ModelResourceLocation MODEL = ModelResourceLocation.standalone(
AnvilCraftPigsPlus.of("block/adjustable_power_converter_core")
);

public AdjustablePowerConverterRenderer(BlockEntityRendererProvider.Context context) {
}

@Override
protected float elevation() {
return 0.5f;
}


@Override
protected ModelResourceLocation getModel() {
return MODEL;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import com.tterrag.registrate.providers.RegistrateRecipeProvider;
import dev.anvilcraft.pigsplus.init.AddonBlocks;
import dev.anvilcraft.pigsplus.init.AddonItems;
import dev.dubhe.anvilcraft.recipe.anvil.wrap.ItemInjectRecipe;
import dev.dubhe.anvilcraft.recipe.anvil.wrap.TimeWarpRecipe;
import dev.dubhe.anvilcraft.recipe.mineral.MineralFountainRecipe;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Blocks;
Expand All @@ -26,5 +28,11 @@ public static void init(RegistrateRecipeProvider provider) {
.resultBlock(AddonBlocks.BUDDING_ECHO_SHARD)
.save(provider);

TimeWarpRecipe.builder()
.requires(AddonItems.KARAKURI_COMPONENT)
.requires(Items.ENDER_PEARL)
.requires(Items.END_STONE,3)
.result(AddonItems.ENDER_COMPONENT,0.2f)
.save(provider);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import dev.anvilcraft.pigsplus.block.entity.EnchantedGeneratorBlockEntity;
import dev.anvilcraft.pigsplus.block.entity.AdjustablePowerConverterBlockEntity;
import dev.anvilcraft.pigsplus.block.entity.SculkExtractorBlockEntity;
import dev.anvilcraft.pigsplus.client.renderer.blockentity.AdjustablePowerConverterRenderer;
import dev.anvilcraft.pigsplus.client.renderer.blockentity.EnchantedGeneratorRenderer;
import dev.anvilcraft.pigsplus.client.renderer.blockentity.ElectricEnchantingTableRenderer;

Expand Down Expand Up @@ -55,6 +56,7 @@ public class AddonBlockEntities {
public static final BlockEntityEntry<AdjustablePowerConverterBlockEntity> ADJUSTABLE_POWER_CONVERTER =
REGISTRATE.blockEntity("adjustable_power_converter", AdjustablePowerConverterBlockEntity::new)
.validBlock(AddonBlocks.ADJUSTABLE_POWER_CONVERTER)
.renderer(() -> AdjustablePowerConverterRenderer::new)
.register();

public static void register() {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/dev/anvilcraft/pigsplus/init/AddonItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ public class AddonItems {
.item("spiritual_component", Item::new)
.register();

public static final ItemEntry<Item> ENDER_COMPONENT = REGISTRATE
.item("ender_component", Item::new)
.register();

public static final ItemEntry<Item> CHAOTIC_RAW_ORE = REGISTRATE
.item("chaotic_raw_ore", Item::new)
.recipe((ctx, provider) -> ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ctx.get(), 9)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.anvilcraft.pigsplus.item;

import dev.anvilcraft.pigsplus.init.AddonItems;
import dev.anvilcraft.pigsplus.util.MathUtil;
import net.minecraft.core.Holder;
import net.minecraft.core.component.DataComponents;
import net.minecraft.util.Mth;
Expand Down Expand Up @@ -31,13 +32,13 @@ public void onDestroyed(ItemEntity itemEntity, DamageSource damageSource) {

List<Holder<Enchantment>> enchantments = itemEnchantments.keySet().stream().toList();
float probability = 0.2f * Mth.clamp(enchantments.size(), 0, 5);
int count = 0;
for (int i = 0; i < itemStack.getCount(); i++) {
if (level.random.nextFloat() < probability) count++;
}

int count = MathUtil.getCount(probability, itemStack.getCount(), level);

// 生成灵媒部件
ItemStack resultItem = AddonItems.SPIRITUAL_COMPONENT.asStack();
resultItem.setCount(count);
level.addFreshEntity(new ItemEntity(level, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), resultItem));
}

}
3 changes: 3 additions & 0 deletions src/main/java/dev/anvilcraft/pigsplus/mixin/package-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@net.minecraft.MethodsReturnNonnullByDefault
@javax.annotation.ParametersAreNonnullByDefault
package dev.anvilcraft.pigsplus.mixin;
17 changes: 17 additions & 0 deletions src/main/java/dev/anvilcraft/pigsplus/util/MathUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package dev.anvilcraft.pigsplus.util;

import net.minecraft.world.level.Level;

public class MathUtil {
public static int getCount(float probability, int num, Level level) {
float totalProbability = probability * num;
int baseCount = (int) totalProbability;
float fractionalPart = totalProbability - baseCount;

int count = baseCount;
if (level.random.nextFloat() < fractionalPart) {
count++;
}
return count;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "可调式能量转换器",
"category": "anvilcraft:power_system",
"icon": "anvilcraft_pigsplus:adjustable_power_converter",
"sortnum": 22100,
"entry_color": "DD6666",
"pages": [
"$(li)可以按1kW ⇔ 80FE/t 转换能量(可用config调整) $(li)可自选转换方向,瞬时转换量",
{
"type": "patchouli:crafting",
"recipe": "anvilcraft_pigsplus:adjustable_power_converter",
"text": "常规最大转换量8192kW $(br)电网范围:以自己为中心5x5x5 $(li)拥有128MFE容量"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
"name": "附魔发电机",
"category": "anvilcraft:power_system",
"icon": "anvilcraft_pigsplus:enchanted_generator",
"sortnum": 22100,
"sortnum": 22101,
"entry_color": "DD6666",
"pages": [
"本章节将会讲述:如何借助$(item)附魔书$()与$(item)雕纹书架$()发电",
{
"type": "patchouli:crafting",
"anchor": "enchanted_generator",
"recipe": "anvilcraft_pigsplus:enchanted_generator",
"text": "常规最大发电量1024kW $(br)工作范围:以自己为中心3x3x3 $(li)可以识别工作范围内的,雕纹书架上的附魔书 $(li)每级附魔提供2kW能量"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,19 @@
"在此介绍由$(thing)铁砧工艺:猪+$()提供的材料",
{
"type": "patchouli:crafting",
"anchor": "karakuri_component",
"recipe": "anvilcraft_pigsplus:karakuri_component",
"text": "机巧部件具有优秀的红石传导能力与结构强度,被广泛用于智能生产设备中$()"
},
{
"type": "patchouli:spotlight",
"anchor": "spiritual_component",
"item": "anvilcraft_pigsplus:spiritual_component",
"link_recipe": true,
"text": "携带$(thing)附魔$()的$(item)机巧部件$()被摧毁时,每条附魔提供20%%的概率,生成最多一个$(item)灵媒部件$() $(p)$(#888888)机魂大悦$()"
},
{
"type": "anvilcraft:time_warp",
"recipe": "anvilcraft:time_warp/ender_component",
"text": "只有20%%成功合成率 $(p)蕴涵传送之力"
}
]
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"variants": {
"": {
"model": "anvilcraft_pigsplus:block/adjustable_power_converter"
"model": "anvilcraft_pigsplus:block/adjustable_power_converter_frame"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"config.jade.plugin_anvilcraft_pigsplus.electric_enchanting_table": "电力附魔台",
"config.jade.plugin_anvilcraft_pigsplus.enchanted_generator": "附魔发电机",
"item.anvilcraft_pigsplus.chaotic_raw_ore": "混沌粗矿",
"item.anvilcraft_pigsplus.ender_component": "末影部件",
"item.anvilcraft_pigsplus.karakuri_component": "机巧部件",
"item.anvilcraft_pigsplus.spiritual_component": "灵媒部件",
"itemGroup.anvilcraft_pigsplus.addon_items": "铁砧工艺:猪+",
Expand Down
Loading