Skip to content

Commit

Permalink
Merge pull request #4421 from Siuolplex/zeta120
Browse files Browse the repository at this point in the history
  • Loading branch information
IThundxr authored Nov 25, 2023
2 parents 9f28fcc + 8a6d3fb commit 5b4a12f
Show file tree
Hide file tree
Showing 8 changed files with 109 additions and 85 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.mojang.serialization.Codec;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Holder;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.WorldGenRegion;
Expand Down Expand Up @@ -56,12 +58,12 @@ public static void register(ZRegister event) {

ResourceLocation resloc = new ResourceLocation(Quark.MOD_ID, "deferred_feature_" + stage.name().toLowerCase(Locale.ROOT));
//fixme IThundxr - ewwww worldgen (i still love you minecraft)
//Holder<ConfiguredFeature<?, ?>> featureHolder = BuiltInRegistries.register(Registries.CONFIGURED_FEATURE, resloc, feature);
Holder<ConfiguredFeature<?, ?>> featureHolder = Holder.direct(feature);

//PlacedFeature placed = new PlacedFeature(featureHolder, List.of());
//Holder<PlacedFeature> placedHolder = BuiltInRegistries.register(Registries.PLACED_FEATURE, resloc, placed);
PlacedFeature placed = new PlacedFeature(featureHolder, List.of());
Holder<PlacedFeature> placedHolder = Holder.direct(placed);

//defers.put(stage, placedHolder);
defers.put(stage, placedHolder);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,50 @@

import com.google.common.collect.ImmutableSet;
import net.minecraft.core.Holder;
import net.minecraft.core.RegistrySetBuilder;
import net.minecraft.core.registries.Registries;
import net.minecraft.data.worldgen.BiomeDefaultFeatures;
import net.minecraft.data.worldgen.BootstapContext;
import net.minecraft.data.worldgen.biome.OverworldBiomes;
import net.minecraft.data.worldgen.features.OreFeatures;
import net.minecraft.data.worldgen.placement.OrePlacements;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.Music;
import net.minecraft.sounds.Musics;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.BiomeGenerationSettings;
import net.minecraft.world.level.biome.Climate;
import net.minecraft.world.level.biome.MobSpawnSettings;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.ComposterBlock;
import net.minecraft.world.level.levelgen.GenerationStep;
import net.minecraft.world.level.levelgen.VerticalAnchor;
import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
import net.minecraft.world.level.levelgen.feature.Feature;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement;
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.minecraft.world.level.levelgen.placement.PlacementModifier;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.config.Config;
import org.violetmoon.quark.base.handler.GeneralConfig;
import org.violetmoon.quark.base.handler.QuarkSounds;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler;
import org.violetmoon.quark.base.util.registryaccess.RegistryAccessUtil;
import org.violetmoon.quark.content.mobs.module.StonelingsModule;
import org.violetmoon.quark.content.world.block.GlowLichenGrowthBlock;
import org.violetmoon.quark.content.world.block.GlowShroomBlock;
import org.violetmoon.quark.content.world.block.GlowShroomRingBlock;
import org.violetmoon.quark.content.world.block.HugeGlowShroomBlock;
import org.violetmoon.quark.content.world.feature.GlowExtrasFeature;
import org.violetmoon.quark.content.world.feature.GlowShroomsFeature;
import org.violetmoon.zeta.advancement.modifier.AdventuringTimeModifier;
import org.violetmoon.zeta.event.bus.LoadEvent;
import org.violetmoon.zeta.event.load.ZCommonSetup;
Expand All @@ -29,14 +54,24 @@
import org.violetmoon.zeta.module.ZetaModule;
import org.violetmoon.zeta.util.Hint;

import java.util.List;

@ZetaLoadModule(category = "world")
public class GlimmeringWealdModule extends ZetaModule {

private static final Climate.Parameter FULL_RANGE = Climate.Parameter.span(-1.0F, 1.0F);
public static final ResourceLocation BIOME_NAME = new ResourceLocation(Quark.MOD_ID, "glimmering_weald");
public static final ResourceKey<Biome> BIOME_KEY = ResourceKey.create(Registries.BIOME, BIOME_NAME);

//public static final Holder<PlacedFeature> ORE_LAPIS_EXTRA = PlacementUtils.register("ore_lapis_glimmering_weald", OreFeatures.ORE_LAPIS, OrePlacements.commonOrePlacement(12, HeightRangePlacement.uniform(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(0))));

public static final BootstapContext<PlacedFeature> bootstapContext = new RegistrySetBuilder().createState(RegistryAccessUtil.getRegistryAccess()).bootstapContext();
public static final BootstapContext<ConfiguredFeature<?,?>> bootstapContextConfig = new RegistrySetBuilder().createState(RegistryAccessUtil.getRegistryAccess()).bootstapContext();
public static final BootstapContext<ConfiguredWorldCarver<?>> bootstapContextWorld = new RegistrySetBuilder().createState(RegistryAccessUtil.getRegistryAccess()).bootstapContext();


static {
}

public static final Holder<PlacedFeature> ORE_LAPIS_EXTRA = bootstapContext.register(ResourceKey.create(Registries.PLACED_FEATURE, new ResourceLocation("quark", "ore_lapis_glimmering_weald")), new PlacedFeature(bootstapContext.lookup(Registries.CONFIGURED_FEATURE).getOrThrow(OreFeatures.ORE_LAPIS), OrePlacements.commonOrePlacement(12, HeightRangePlacement.uniform(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(0)))));
public static Holder<PlacedFeature> placed_glow_shrooms;
public static Holder<PlacedFeature> placed_glow_extras;

Expand Down Expand Up @@ -71,13 +106,13 @@ public final void register(ZRegister event) {
event.getVariantRegistry().addFlowerPot(glow_shroom, "glow_shroom", prop -> prop.lightLevel((state) -> 10));

//fixme
//makeFeatures();
makeFeatures();
}

@LoadEvent
public void postRegister(ZRegister.Post e) {
//fixme
//Quark.ZETA.registry.register(makeBiome(), BIOME_NAME, Registries.BIOME);
Quark.ZETA.registry.register(makeBiome(), BIOME_NAME, Registries.BIOME);
float wmin = (float) minDepthRange;
float wmax = (float) maxDepthRange;
if(wmin >= wmax){
Expand Down Expand Up @@ -107,47 +142,47 @@ public void setup(ZCommonSetup e) {
}

//fixme
// private static void makeFeatures() {
// placed_glow_shrooms = place("glow_shrooms", new GlowShroomsFeature(), GlowShroomsFeature.placed());
// placed_glow_extras = place("glow_extras", new GlowExtrasFeature(), GlowExtrasFeature.placed());
// }
private static void makeFeatures() {
placed_glow_shrooms = place("glow_shrooms", new GlowShroomsFeature(), GlowShroomsFeature.placed());
placed_glow_extras = place("glow_extras", new GlowExtrasFeature(), GlowExtrasFeature.placed());
}

//fixme
// private static Holder<PlacedFeature> place(String featureName, Feature<NoneFeatureConfiguration> feature, List<PlacementModifier> placer) {
// String name = Quark.MOD_ID + ":" + featureName;
//
// Quark.ZETA.registry.register(feature, name, Registries.FEATURE);
// Holder<ConfiguredFeature<NoneFeatureConfiguration, ?>> configured = FeatureUtils.register(name, feature, NoneFeatureConfiguration.NONE);
// return PlacementUtils.register(name, configured, placer);
// }

//fixme
// private static Biome makeBiome() {
// MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
// BiomeDefaultFeatures.commonSpawns(mobs);
//
// if(Quark.ZETA.modules.isEnabled(StonelingsModule.class))
// mobs.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(StonelingsModule.stonelingType, 200, 1, 4));
// mobs.addSpawn(MobCategory.UNDERGROUND_WATER_CREATURE, new MobSpawnSettings.SpawnerData(EntityType.GLOW_SQUID, 20, 4, 6));
//
// BiomeGenerationSettings.Builder settings = new BiomeGenerationSettings.Builder();
// OverworldBiomes.globalOverworldGeneration(settings);
// BiomeDefaultFeatures.addPlainGrass(settings);
// BiomeDefaultFeatures.addDefaultOres(settings, true);
// BiomeDefaultFeatures.addDefaultSoftDisks(settings);
// BiomeDefaultFeatures.addPlainVegetation(settings);
// BiomeDefaultFeatures.addDefaultMushrooms(settings);
// BiomeDefaultFeatures.addDefaultExtraVegetation(settings);
//
// settings.addFeature(GenerationStep.Decoration.UNDERGROUND_DECORATION, placed_glow_shrooms);
// settings.addFeature(GenerationStep.Decoration.UNDERGROUND_DECORATION, placed_glow_extras);
//
// settings.addFeature(GenerationStep.Decoration.UNDERGROUND_ORES, ORE_LAPIS_EXTRA);
//
// Music music = Musics.createGameMusic(Holder.direct(QuarkSounds.MUSIC_GLIMMERING_WEALD));
// Biome biome = OverworldBiomes.biome(Biome.Precipitation.RAIN, 0.8F, 0.4F, mobs, settings, music);
//
// return biome;
// }
private static Holder<PlacedFeature> place(String featureName, Feature<NoneFeatureConfiguration> feature, List<PlacementModifier> placer) {
String name = Quark.MOD_ID + ":" + featureName;

Quark.ZETA.registry.register(feature, name, Registries.FEATURE);
Holder<ConfiguredFeature<?, ?>> configured = bootstapContextConfig.register(ResourceKey.create(Registries.CONFIGURED_FEATURE, new ResourceLocation(name)), new ConfiguredFeature<>(feature, NoneFeatureConfiguration.NONE));
return bootstapContext.register(ResourceKey.create(Registries.PLACED_FEATURE, new ResourceLocation(name)), new PlacedFeature(configured, placer));
}


private static Biome makeBiome() {
MobSpawnSettings.Builder mobs = new MobSpawnSettings.Builder();
BiomeDefaultFeatures.commonSpawns(mobs);

if(Quark.ZETA.modules.isEnabled(StonelingsModule.class))
mobs.addSpawn(MobCategory.CREATURE, new MobSpawnSettings.SpawnerData(StonelingsModule.stonelingType, 200, 1, 4));
mobs.addSpawn(MobCategory.UNDERGROUND_WATER_CREATURE, new MobSpawnSettings.SpawnerData(EntityType.GLOW_SQUID, 20, 4, 6));

BiomeGenerationSettings.Builder settings = new BiomeGenerationSettings.Builder(bootstapContext.lookup(Registries.PLACED_FEATURE), bootstapContextWorld.lookup(Registries.CONFIGURED_CARVER));
OverworldBiomes.globalOverworldGeneration(settings);
BiomeDefaultFeatures.addPlainGrass(settings);
BiomeDefaultFeatures.addDefaultOres(settings, true);
BiomeDefaultFeatures.addDefaultSoftDisks(settings);
BiomeDefaultFeatures.addPlainVegetation(settings);
BiomeDefaultFeatures.addDefaultMushrooms(settings);
BiomeDefaultFeatures.addDefaultExtraVegetation(settings);

settings.addFeature(GenerationStep.Decoration.UNDERGROUND_DECORATION, placed_glow_shrooms);
settings.addFeature(GenerationStep.Decoration.UNDERGROUND_DECORATION, placed_glow_extras);

settings.addFeature(GenerationStep.Decoration.UNDERGROUND_ORES, ORE_LAPIS_EXTRA);

Music music = Musics.createGameMusic(Holder.direct(QuarkSounds.MUSIC_GLIMMERING_WEALD));
Biome biome = OverworldBiomes.biome(true, 0.8F, 0.4F, mobs, settings, music);

return biome;
}

}
Original file line number Diff line number Diff line change
@@ -1,31 +1,26 @@
package org.violetmoon.quark.integration.terrablender;

import java.util.function.Consumer;
import java.util.function.Supplier;

import net.minecraft.core.registries.Registries;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.handler.GeneralConfig;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler.Proxy;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler.UndergroundBiomeSkeleton;
import org.violetmoon.zeta.event.load.ZLoadComplete;

import com.mojang.datafixers.util.Pair;

import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Climate;
import net.minecraft.world.level.biome.Climate.ParameterPoint;
import net.minecraft.world.level.biome.OverworldBiomeBuilder;
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
import net.minecraftforge.fml.event.lifecycle.ParallelDispatchEvent;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.handler.GeneralConfig;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler.Proxy;
import org.violetmoon.quark.base.handler.UndergroundBiomeHandler.UndergroundBiomeSkeleton;
import org.violetmoon.zeta.event.load.ZLoadComplete;
import terrablender.api.Region;
import terrablender.api.RegionType;
import terrablender.api.Regions;

import java.util.function.Consumer;
import java.util.function.Supplier;

public class TerraBlenderIntegration implements Supplier<UndergroundBiomeHandler.Proxy> {

private TBProxy proxy;
Expand Down Expand Up @@ -53,9 +48,9 @@ public void addBiomes(Registry<Biome> registry, Consumer<Pair<Climate.ParameterP

for(UndergroundBiomeSkeleton skeleton : proxy.skeletons)
if(skeleton.module().enabled) {
ResourceKey<Biome> resourceKey = ResourceKey.create(Registries.BIOME, skeleton.biome());
mapper.accept(Pair.of(skeleton.climate(), resourceKey));
didAnything = true;
// ResourceKey<Biome> resourceKey = ResourceKey.create(Registries.BIOME, skeleton.biome());
// mapper.accept(Pair.of(skeleton.climate(), resourceKey));
// didAnything = true;
}

if(didAnything)
Expand Down
11 changes: 2 additions & 9 deletions src/main/java/org/violetmoon/quark/mixin/DamageSourcesMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,14 @@

import net.minecraft.world.damagesource.DamageSources;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import org.violetmoon.quark.content.tools.module.PickarangModule;

import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.player.Player;

@Mixin(DamageSources.class)
public class DamageSourcesMixin {
@Inject(method = "playerAttack", at = @At("HEAD"), cancellable = true)
/*@Inject(method = "playerAttack", at = @At("HEAD"), cancellable = true)
private static void playerAttack(Player player, CallbackInfoReturnable<DamageSource> callbackInfoReturnable) {
DamageSource damage = PickarangModule.createDamageSource(player);
if(damage != null)
callbackInfoReturnable.setReturnValue(damage);
}
}*/
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
public class PlayerAdvancementsMixin {

@ModifyConstant(method = "evaluateVisibility(Lnet/minecraft/advancements/Advancement;Ljava/util/function/Predicate;Lnet/minecraft/server/advancements/AdvancementVisibilityEvaluator$Output;)V", constant = @Constant(intValue = 2))
static int visibility(int curr) {
private static int visibility(int curr) {
return GeneralConfig.advancementVisibilityDepth;
}

Expand Down
13 changes: 5 additions & 8 deletions src/main/java/org/violetmoon/quark/mixin/PotionUtilsMixin.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@
package org.violetmoon.quark.mixin;

import com.mojang.datafixers.util.Pair;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.alchemy.PotionUtils;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.violetmoon.quark.content.client.hax.PseudoAccessorItemStack;
import org.violetmoon.quark.content.client.module.ImprovedTooltipsModule;

import java.util.Collections;
import java.util.List;

@Mixin(value = PotionUtils.class)
public class PotionUtilsMixin {

@ModifyVariable(method = "addPotionTooltip", at = @At(value = "INVOKE", target = "Ljava/util/List;isEmpty()Z", ordinal = 1, shift = At.Shift.BEFORE), ordinal = 2)
private static List<Pair<Attribute, AttributeModifier>> overrideAttributeTooltips(List<Pair<Attribute, AttributeModifier>> attributes, ItemStack stack) {
if (ImprovedTooltipsModule.shouldHideAttributes()) {
@ModifyVariable(method = "addPotionTooltip(Ljava/util/List;Ljava/util/List;F)V", at = @At(value = "INVOKE", target = "Ljava/util/List;isEmpty()Z", ordinal = 1, shift = At.Shift.BEFORE), ordinal = 2)
private static List<Pair<Attribute, AttributeModifier>> overrideAttributeTooltips(List<Pair<Attribute, AttributeModifier>> attributes, List<MobEffectInstance> mobEffects) {
/*if (ImprovedTooltipsModule.shouldHideAttributes()) {
((PseudoAccessorItemStack) (Object) stack).quark$capturePotionAttributes(attributes);
return Collections.emptyList();
}
}*/
return attributes;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import net.minecraft.network.protocol.Packet;
import net.minecraft.server.level.ServerEntity;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.projectile.ThrownTrident;
import org.spongepowered.asm.mixin.Final;
Expand Down Expand Up @@ -32,7 +33,7 @@ private void updateTridentData(CallbackInfo ci) {
}

@Inject(method = "sendPairingData", at = @At("HEAD"))
private void pairTridentData(Consumer<Packet<?>> send, CallbackInfo ci) {
private void pairTridentData(ServerPlayer serverPlayer, Consumer<Packet<?>> send, CallbackInfo ci) {
if (entity instanceof ThrownTrident trident)
ColorRunesModule.syncTrident(send, trident, true);
}
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/META-INF/accesstransformer.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,5 @@ public net.minecraft.data.worldgen.biome.OverworldBiomes m_264144_(ZFFLnet/minec
public-f net.minecraft.advancements.critereon.ItemUsedOnLocationTrigger$TriggerInstance f_285570_ # location
public-f net.minecraft.advancements.critereon.ContextAwarePredicate f_285622_ # conditions
public-f net.minecraft.advancements.critereon.ContextAwarePredicate f_285559_ # compositePredicates

public net.minecraft.core.RegistrySetBuilder$BuildState
public net.minecraft.core.RegistrySetBuilder m_254900_(Lnet/minecraft/core/RegistryAccess;)Lnet/minecraft/core/RegistrySetBuilder$BuildState; # createState

0 comments on commit 5b4a12f

Please sign in to comment.