Skip to content

Commit

Permalink
Fix Worldgen again, Breccia Sounds & Handheld Nozzle Recipe & Tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
LopyLuna committed Sep 26, 2024
1 parent 6a67d0b commit a7799f7
Show file tree
Hide file tree
Showing 16 changed files with 347 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.19.2 2024-09-15T20:07:49.4805557 Create: Dreams n' Desires Mechanical Crafting Recipes
// 1.19.2 2024-09-26T12:35:37.5732135 Create: Dreams n' Desires Mechanical Crafting Recipes
24c1b24debb02415c1e9e71d16948381134e3183 data/create_dd/recipes/mechanical_crafting/excavation_drill.json
bd9e26573c5589f68a52be4289dffc0611521673 data/create_dd/recipes/mechanical_crafting/furnace_engine.json
f202d7ab2f317e76047a70e4a729f48c659b1337 data/create_dd/recipes/mechanical_crafting/gilded_rose_axe.json
Expand All @@ -7,4 +7,5 @@ d22fd812f21dfa704f43d06601f1b47992d8aa37 data/create_dd/recipes/mechanical_craft
f27360c7cebfc2597d334ef7254e350138d28ec8 data/create_dd/recipes/mechanical_crafting/gilded_rose_shovel.json
0888979c7de1185744b2a0cd441c7778b3dc1d04 data/create_dd/recipes/mechanical_crafting/gilded_rose_sword.json
ca8a0d0f9377cd5c466611a69bec1ec4f6a2e8fe data/create_dd/recipes/mechanical_crafting/handheld_block_zapper.json
b1b0e58e5421b8fe09974bdf54c8a486b1043fb2 data/create_dd/recipes/mechanical_crafting/handheld_nozzle.json
4b8fe1a4dd07347d87a964e328e584b04c095237 data/create_dd/recipes/mechanical_crafting/hydraulic_press.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"type": "create:mechanical_crafting",
"acceptMirrored": true,
"key": {
"A": {
"item": "create:andesite_alloy"
},
"B": {
"tag": "forge:storage_blocks/copper"
},
"C": {
"tag": "forge:ingots/copper"
},
"E": {
"item": "create:electron_tube"
},
"F": {
"item": "create:fluid_pipe"
},
"M": {
"item": "create:precision_mechanism"
},
"P": {
"item": "create:propeller"
},
"W": {
"tag": "minecraft:wool"
}
},
"pattern": [
"WBACE ",
"WBPCMCC",
" AFFACC"
],
"result": {
"item": "create_dd:handheld_nozzle"
}
}
6 changes: 6 additions & 0 deletions src/main/java/uwu/lopyluna/create_dd/DesiresCreate.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@
import uwu.lopyluna.create_dd.content.blocks.kinetics.furnace_engine.FurnaceEngineBlock;
import uwu.lopyluna.create_dd.infrastructure.config.DesiresConfigs;
import uwu.lopyluna.create_dd.infrastructure.data.DesiresDatagen;
import uwu.lopyluna.create_dd.infrastructure.world.DesireBuiltinRegistration;
import uwu.lopyluna.create_dd.infrastructure.world.DesiresFeatures;
import uwu.lopyluna.create_dd.infrastructure.world.DesiresPlacementModifiers;
import uwu.lopyluna.create_dd.registry.*;
import uwu.lopyluna.create_dd.registry.addons.DreamsAddons;
import uwu.lopyluna.create_dd.registry.darkness.MagicItems;
Expand Down Expand Up @@ -98,6 +101,9 @@ public DesiresCreate() {
DesiresEntityDataSerializers.register(modEventBus);
DesiresPackets.registerPackets();
DesiresOreFeaturesEntries.init();
DesiresPlacementModifiers.register(modEventBus);
DesiresFeatures.register(modEventBus);
DesireBuiltinRegistration.register(modEventBus);
DesiresBlockMovementChecks.register();

//ADDONS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.data.DataGenerator;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.ItemLike;
import net.minecraftforge.common.Tags;
Expand All @@ -28,6 +29,21 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider {

GeneratedRecipe

HANDHELD_NOZZLE = create(DesiresItems.HANDHELD_NOZZLE::get).returns(1)
.recipe(b -> b
.key('B', AllTags.forgeItemTag("storage_blocks/copper"))
.key('C', AllTags.forgeItemTag("ingots/copper"))
.key('W', ItemTags.WOOL)
.key('M', AllItems.PRECISION_MECHANISM.get())
.key('P', AllItems.PROPELLER.get())
.key('E', AllItems.ELECTRON_TUBE.get())
.key('F', AllBlocks.FLUID_PIPE.get())
.key('A', AllItems.ANDESITE_ALLOY.get())
.patternLine("WBACE ")
.patternLine("WBPCMCC")
.patternLine(" AFFACC")
),

BLOCK_ZAPPER = create(DesiresItems.BLOCK_ZAPPER::get).returns(1)
.recipe(b -> b
.key('S', AllTags.forgeItemTag("storage_blocks/brass"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package uwu.lopyluna.create_dd.content.items.equipment.handheld_nozzle;

import com.simibubi.create.AllItems;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.content.equipment.armor.BacktankUtil;
import com.simibubi.create.content.kinetics.fan.AirCurrent;
Expand All @@ -9,16 +10,19 @@
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.ClipContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;
Expand Down Expand Up @@ -47,7 +51,7 @@ public class HandheldNozzleItem extends Item {
private final List<Entity> pushingEntities = new ArrayList<>();

public HandheldNozzleItem(Properties properties) {
super(properties);
super(properties.durability(4096));
}

public boolean getIsBlowing(CompoundTag nbt) {
Expand All @@ -64,25 +68,54 @@ public void setIsActive(CompoundTag nbt, boolean value) {
}

@Override
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
ItemStack itemStack = player.getItemInHand(hand);
CompoundTag nbt = itemStack.getOrCreateTag();

if (player.isShiftKeyDown()) {
if (!level.isClientSide) {
setIsBlowing(nbt, !getIsBlowing(nbt));
player.displayClientMessage(Component.literal("Mode switched to: " + (getIsBlowing(nbt) ? "Blowing" : "Vacuuming")), true);
level.playSound(null, player.blockPosition(), AllSoundEvents.CONFIRM.getMainEvent(), SoundSource.PLAYERS, 1.0F, 1.0F);
public InteractionResultHolder<ItemStack> use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) {
ItemStack tool = pPlayer.getItemInHand(InteractionHand.MAIN_HAND == pUsedHand ? InteractionHand.MAIN_HAND : InteractionHand.OFF_HAND);
ItemStack repairStack = pPlayer.getItemInHand(InteractionHand.MAIN_HAND == pUsedHand ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND);

if ((repairStack.is(AllItems.PROPELLER.get()) || repairStack.is(Items.COPPER_INGOT))) {
boolean flag = (tool.isDamaged() && tool.isBarVisible());
int value = repairStack.is(AllItems.PROPELLER.get()) ? 100 : 10;
if (tool.getItem() == this && tool.getMaxDamage() != tool.getDamageValue() && flag) {
repairTool(tool, ((tool.getMaxDamage() - value) >= tool.getDamageValue()) ? value : tool.getMaxDamage() - tool.getDamageValue());

if (!pPlayer.isCreative()) {
repairStack.shrink(1);
}
}
if (pLevel.isClientSide() && flag) {
float r = (pPlayer.random.nextFloat() - pPlayer.random.nextFloat()) * 0.2F;
pPlayer.playSound(SoundEvents.AXE_SCRAPE, .25f, 0.85f + r);
pPlayer.playSound(SoundEvents.NETHERITE_BLOCK_HIT, .15f, .75f + r);
pPlayer.playSound(SoundEvents.COPPER_BREAK, .9f, 1.45f + r);
pPlayer.playSound(SoundEvents.COPPER_BREAK, .9f, 0.65f + r);
return new InteractionResultHolder<>(InteractionResult.SUCCESS, pPlayer.getItemInHand(pUsedHand));
} else {
return new InteractionResultHolder<>(InteractionResult.FAIL, pPlayer.getItemInHand(pUsedHand));
}
} else {
if (!level.isClientSide) {
setIsActive(nbt, !getIsActive(nbt));
player.displayClientMessage(Component.literal(getName(itemStack).getString() + ": " + (getIsActive(nbt) ? "Activated" : "De-Activated") ), true);
level.playSound(null, player.blockPosition(), getIsActive(nbt) ? AllSoundEvents.CONFIRM.getMainEvent() : AllSoundEvents.DENY.getMainEvent(), SoundSource.PLAYERS, 1.0F, 1.0F);
ItemStack itemStack = pPlayer.getItemInHand(pUsedHand);
CompoundTag nbt = itemStack.getOrCreateTag();

if (pPlayer.isShiftKeyDown()) {
if (!pLevel.isClientSide) {
setIsBlowing(nbt, !getIsBlowing(nbt));
pPlayer.displayClientMessage(Component.literal("Mode switched to: " + (getIsBlowing(nbt) ? "Blowing" : "Vacuuming")), true);
pLevel.playSound(null, pPlayer.blockPosition(), AllSoundEvents.CONFIRM.getMainEvent(), SoundSource.PLAYERS, 1.0F, 1.0F);
}
} else {
if (!pLevel.isClientSide) {
setIsActive(nbt, !getIsActive(nbt));
pPlayer.displayClientMessage(Component.literal(getName(itemStack).getString() + ": " + (getIsActive(nbt) ? "Activated" : "De-Activated")), true);
pLevel.playSound(null, pPlayer.blockPosition(), getIsActive(nbt) ? AllSoundEvents.CONFIRM.getMainEvent() : AllSoundEvents.DENY.getMainEvent(), SoundSource.PLAYERS, 1.0F, 1.0F);

}
}
return InteractionResultHolder.sidedSuccess(itemStack, pLevel.isClientSide());
}
return InteractionResultHolder.sidedSuccess(itemStack, level.isClientSide());
}

public void repairTool(ItemStack tool, int value) {
tool.setDamageValue(tool.getDamageValue() - value);
}

@Override
Expand Down Expand Up @@ -135,6 +168,11 @@ public void inventoryTick(ItemStack pStack, Level pLevel, Entity pEntity, int pS
Vec3 center = getCenterPos(pPlayer);

if (!pLevel.isClientSide) {

if (!BacktankUtil.canAbsorbDamage(pPlayer, getMaxDamage(pStack))) {
pStack.hurtAndBreak(randomChance(75) ? 1 : 0, pPlayer, p -> p.broadcastBreakEvent((pPlayer.getOffhandItem() == pStack && pSlotId == 0 && !(pIsSelected && pSlotId == 0 && pPlayer.getMainHandItem() == pStack)) ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND));
}

handleEntityInteractions(pLevel, pPlayer, center, range, nbt, speedLimit);
handlePlayerInteractions(pPlayer, rangeP, nbt, speedLimit);
}
Expand All @@ -151,6 +189,11 @@ public void inventoryTick(ItemStack pStack, Level pLevel, Entity pEntity, int pS
}
}

@Override
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
return slotChanged;
}

private void handleEntityInteractions(Level pLevel, Player pPlayer, Vec3 center, float range, CompoundTag nbt, float speedLimit) {
pushingEntities.removeIf(entity -> entity == null);
pushingEntities.removeIf(entity -> !entity.isAlive());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
import com.simibubi.create.foundation.render.RenderTypes;
import com.simibubi.create.foundation.utility.Couple;
import com.simibubi.create.foundation.utility.DyeHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.block.model.ItemTransforms;
Expand Down Expand Up @@ -44,20 +42,17 @@ protected void render(ItemStack stack, CustomRenderedItemModel model, PartialIte

TransformStack stacker = TransformStack.cast(ms);
float worldTime = AnimationTickHolder.getRenderTime();
LocalPlayer player = Minecraft.getInstance().player;
assert player != null;
boolean mainHand = player.getMainHandItem() == stack;
boolean offHand = player.getOffhandItem() == stack;
boolean flag1 = (mainHand || offHand) && item.getIsActive(nbt);
boolean flag2 = (mainHand || offHand) && item.getIsBlowing(nbt);

boolean flag1 = item.getIsActive(nbt);
boolean flag2 = item.getIsBlowing(nbt);

renderer.render(ITEM.get(), light);

ms.pushPose();
Couple<Integer> couple = DyeHelper.DYE_TABLE.get(flag1 ? DyeColor.LIME : DyeColor.RED);
int brightColor = couple.getFirst();
int darkColor = couple.getSecond();
int color = randomChance(10) ? darkColor : brightColor;
int color = randomChance(25) ? darkColor : brightColor;

float multiplier = -Mth.sin(worldTime * .25f % 360);
int lightIntensity = (int) (15 * Mth.clamp(multiplier, 0.5, 1));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package uwu.lopyluna.create_dd.content.world;

import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes;
import com.simibubi.create.infrastructure.worldgen.LayerPattern;
import com.tterrag.registrate.util.nullness.NonNullSupplier;
import net.minecraft.world.level.block.Blocks;
import uwu.lopyluna.create_dd.registry.DesiresPaletteStoneTypes;

public class DesiresLayerPatterns {

public static final NonNullSupplier<LayerPattern> SPACE_ROCK = () -> LayerPattern.builder()
.layer(l -> l.weight(2)
.block(DesiresPaletteStoneTypes.BRECCIA.getBaseBlock().get())
.size(2, 5))
.layer(l -> l.weight(1)
.block(DesiresPaletteStoneTypes.GABBRO.getBaseBlock().get())
.block(Blocks.GRANITE)
.size(2, 3))
.layer(l -> l.weight(1)
.blocks(Blocks.GRANITE, DesiresPaletteStoneTypes.GABBRO.getBaseBlock().get())
.size(2, 2))
.layer(l -> l.weight(1)
.block(Blocks.GLOWSTONE)
.size(1, 2))
.build();


public static final NonNullSupplier<LayerPattern> WEATHERED_LIMESTONE = () -> LayerPattern.builder()
.layer(l -> l.weight(1)
.passiveBlock())
.layer(l -> l.weight(2)
.block(Blocks.CALCITE))
.layer(l -> l.weight(1)
.block(DesiresPaletteStoneTypes.DOLOMITE.getBaseBlock().get()))
.layer(l -> l.weight(2)
.block(DesiresPaletteStoneTypes.WEATHERED_LIMESTONE.getBaseBlock().get())
.size(2, 4))
.build();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import net.minecraftforge.common.ForgeConfigSpec;
import uwu.lopyluna.create_dd.registry.DesiresOreFeaturesEntries;

import static uwu.lopyluna.create_dd.DesiresCreate.NAME;

@SuppressWarnings("unused")
public class DWorldGen extends ConfigBase {

Expand All @@ -23,6 +25,6 @@ public String getName() {
}

private static class Comments {
static String disable = "Prevents all worldgen added by Create from taking effect";
static String disable = "Prevents all worldgen added by " + NAME + " from taking effect";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package uwu.lopyluna.create_dd.infrastructure.world;

import com.simibubi.create.infrastructure.worldgen.ConfigDrivenPlacement;
import com.simibubi.create.infrastructure.worldgen.OreFeatureConfigEntry;
import net.minecraft.world.level.levelgen.placement.PlacementModifierType;
import uwu.lopyluna.create_dd.infrastructure.config.DesiresConfigs;

public class CDrivenPlacement extends ConfigDrivenPlacement {
public CDrivenPlacement(OreFeatureConfigEntry entry) {
super(entry);
}

@Override
public PlacementModifierType<?> type() {
return DesiresPlacementModifiers.CONFIG_DRIVEN.get();
}

@Override
public float getFrequency() {
if (DesiresConfigs.common().worldGen.disable.get())
return 0;
return getEntry().frequency.getF();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package uwu.lopyluna.create_dd.infrastructure.world;

import com.simibubi.create.infrastructure.worldgen.OreFeatureConfigEntry;
import net.minecraft.core.Registry;
import net.minecraft.data.BuiltinRegistries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraftforge.common.world.BiomeModifier;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

import java.util.Map;

import static uwu.lopyluna.create_dd.DesiresCreate.MOD_ID;

public class DesireBuiltinRegistration {
private static final DeferredRegister<ConfiguredFeature<?, ?>> CONFIGURED_FEATURE_REGISTER = DeferredRegister.create(Registry.CONFIGURED_FEATURE_REGISTRY, MOD_ID);
private static final DeferredRegister<PlacedFeature> PLACED_FEATURE_REGISTER = DeferredRegister.create(Registry.PLACED_FEATURE_REGISTRY, MOD_ID);
private static final DeferredRegister<BiomeModifier> BIOME_MODIFIER_REGISTER = DeferredRegister.create(ForgeRegistries.Keys.BIOME_MODIFIERS, MOD_ID);

static {
for (Map.Entry<ResourceLocation, OreFeatureConfigEntry> entry : OreFeatureConfigEntry.ALL.entrySet()) {
ResourceLocation id = entry.getKey();
if (id.getNamespace().equals(MOD_ID)) {
OreFeatureConfigEntry.DatagenExtension datagenExt = entry.getValue().datagenExt();
if (datagenExt != null) {
CONFIGURED_FEATURE_REGISTER.register(id.getPath(), () -> datagenExt.createConfiguredFeature(BuiltinRegistries.ACCESS));
PLACED_FEATURE_REGISTER.register(id.getPath(), () -> datagenExt.createPlacedFeature(BuiltinRegistries.ACCESS));
BIOME_MODIFIER_REGISTER.register(id.getPath(), () -> datagenExt.createBiomeModifier(BuiltinRegistries.ACCESS));
}
}
}
}

public static void register(IEventBus modEventBus) {
CONFIGURED_FEATURE_REGISTER.register(modEventBus);
PLACED_FEATURE_REGISTER.register(modEventBus);
BIOME_MODIFIER_REGISTER.register(modEventBus);
}
}
Loading

0 comments on commit a7799f7

Please sign in to comment.