mirror of
https://github.com/Pridecraft-Studios/joy.git
synced 2025-08-03 14:36:03 -04:00
parent
d1c34aa464
commit
3423dffea2
@ -3,6 +3,7 @@ package gay.pridecraft.joy.data;
|
|||||||
import gay.pridecraft.joy.registry.JoyBlocks;
|
import gay.pridecraft.joy.registry.JoyBlocks;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.registry.RegistryWrapper;
|
import net.minecraft.registry.RegistryWrapper;
|
||||||
import net.minecraft.registry.tag.BlockTags;
|
import net.minecraft.registry.tag.BlockTags;
|
||||||
|
|
||||||
@ -35,22 +36,7 @@ public class JoyBlockTagProvider extends FabricTagProvider.BlockTagProvider {
|
|||||||
.add(JoyBlocks.PROGRESS_CANDLE);
|
.add(JoyBlocks.PROGRESS_CANDLE);
|
||||||
|
|
||||||
getOrCreateTagBuilder(BlockTags.BEDS)
|
getOrCreateTagBuilder(BlockTags.BEDS)
|
||||||
.add(JoyBlocks.GAY_BED)
|
.add(JoyBlocks.BEDS.toArray(Block[]::new));
|
||||||
.add(JoyBlocks.ENBY_BED)
|
|
||||||
.add(JoyBlocks.INTERSEX_BED)
|
|
||||||
.add(JoyBlocks.AGENDER_BED)
|
|
||||||
.add(JoyBlocks.BIGENDER_BED)
|
|
||||||
.add(JoyBlocks.BISEXUAL_BED)
|
|
||||||
.add(JoyBlocks.MLM_BED)
|
|
||||||
.add(JoyBlocks.ACE_BED)
|
|
||||||
.add(JoyBlocks.ARO_BED)
|
|
||||||
.add(JoyBlocks.APLATONIC_BED)
|
|
||||||
.add(JoyBlocks.GENDER_FLUID_BED)
|
|
||||||
.add(JoyBlocks.PAN_BED)
|
|
||||||
.add(JoyBlocks.TRANS_BED)
|
|
||||||
.add(JoyBlocks.AROACE_BED)
|
|
||||||
.add(JoyBlocks.LESBIAN_BED)
|
|
||||||
.add(JoyBlocks.PROGRESS_BED);
|
|
||||||
|
|
||||||
getOrCreateTagBuilder(BlockTags.CANDLE_CAKES)
|
getOrCreateTagBuilder(BlockTags.CANDLE_CAKES)
|
||||||
.add(JoyBlocks.QUEER_CANDLE_CAKE)
|
.add(JoyBlocks.QUEER_CANDLE_CAKE)
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"mixins": [
|
"mixins": [
|
||||||
|
"joy.mixins.json",
|
||||||
"joy-data.mixin.json"
|
"joy-data.mixin.json"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
package gay.pridecraft.joy;
|
package gay.pridecraft.joy;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.registry.RegistryKey;
|
||||||
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ampflower
|
* @author Ampflower
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
@ -15,4 +21,12 @@ public final class JoyUtil {
|
|||||||
public static Identifier id(String name) {
|
public static Identifier id(String name) {
|
||||||
return Identifier.of(id, name);
|
return Identifier.of(id, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Stream<BlockState> streamBlockStates(Block block) {
|
||||||
|
return block.getStateManager().getStates().stream();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> RegistryEntry<T> getEntry(RegistryKey<T> entry) {
|
||||||
|
return Pivot.getRegistry(entry.getRegistryRef()).entryOf(entry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import gay.pridecraft.joy.registry.JoyEntities;
|
|||||||
import gay.pridecraft.joy.registry.JoyItemGroups;
|
import gay.pridecraft.joy.registry.JoyItemGroups;
|
||||||
import gay.pridecraft.joy.registry.JoyItems;
|
import gay.pridecraft.joy.registry.JoyItems;
|
||||||
import gay.pridecraft.joy.registry.JoyParticles;
|
import gay.pridecraft.joy.registry.JoyParticles;
|
||||||
|
import gay.pridecraft.joy.registry.JoyPoi;
|
||||||
import gay.pridecraft.joy.registry.JoySoundEvents;
|
import gay.pridecraft.joy.registry.JoySoundEvents;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.particle.SimpleParticleType;
|
import net.minecraft.particle.SimpleParticleType;
|
||||||
@ -61,5 +62,6 @@ public interface Pivot {
|
|||||||
BlahajDataComponentTypes.init();
|
BlahajDataComponentTypes.init();
|
||||||
BlahajBlocks.init();
|
BlahajBlocks.init();
|
||||||
JoyItemGroups.init();
|
JoyItemGroups.init();
|
||||||
|
JoyPoi.init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
package gay.pridecraft.joy.mixin.minecraft;
|
||||||
|
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
|
import net.minecraft.world.poi.PointOfInterestType;
|
||||||
|
import net.minecraft.world.poi.PointOfInterestTypes;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
|
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Ampflower
|
||||||
|
* @since 1.0.0
|
||||||
|
**/
|
||||||
|
@Mixin(PointOfInterestTypes.class)
|
||||||
|
public interface AccessorPoi {
|
||||||
|
@Accessor("POI_STATES_TO_TYPE")
|
||||||
|
static Map<BlockState, RegistryEntry<PointOfInterestType>> getPoiStatesToType() {
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Invoker
|
||||||
|
static void invokeRegisterStates(RegistryEntry<PointOfInterestType> poi, Set<BlockState> states) {
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
}
|
@ -15,6 +15,8 @@ import net.minecraft.item.Item;
|
|||||||
import net.minecraft.registry.Registries;
|
import net.minecraft.registry.Registries;
|
||||||
import net.minecraft.registry.RegistryKeys;
|
import net.minecraft.registry.RegistryKeys;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static net.minecraft.block.AbstractBlock.Settings.copy;
|
import static net.minecraft.block.AbstractBlock.Settings.copy;
|
||||||
|
|
||||||
public final class JoyBlocks {
|
public final class JoyBlocks {
|
||||||
@ -37,6 +39,25 @@ public final class JoyBlocks {
|
|||||||
LESBIAN_BED = registerBed("lesbian_bed", Blocks.ORANGE_BED),
|
LESBIAN_BED = registerBed("lesbian_bed", Blocks.ORANGE_BED),
|
||||||
PROGRESS_BED = registerBed("progress_bed", Blocks.WHITE_BED);
|
PROGRESS_BED = registerBed("progress_bed", Blocks.WHITE_BED);
|
||||||
|
|
||||||
|
public static final List<Block> BEDS = List.of(
|
||||||
|
GAY_BED,
|
||||||
|
ENBY_BED,
|
||||||
|
INTERSEX_BED,
|
||||||
|
AGENDER_BED,
|
||||||
|
BIGENDER_BED,
|
||||||
|
BISEXUAL_BED,
|
||||||
|
MLM_BED,
|
||||||
|
ACE_BED,
|
||||||
|
ARO_BED,
|
||||||
|
APLATONIC_BED,
|
||||||
|
GENDER_FLUID_BED,
|
||||||
|
PAN_BED,
|
||||||
|
TRANS_BED,
|
||||||
|
AROACE_BED,
|
||||||
|
LESBIAN_BED,
|
||||||
|
PROGRESS_BED
|
||||||
|
);
|
||||||
|
|
||||||
private static Block registerBed(String name, Block src) {
|
private static Block registerBed(String name, Block src) {
|
||||||
final var block = new JoyBedBlock(copy(src));
|
final var block = new JoyBedBlock(copy(src));
|
||||||
Pivot.INSTANCE.register(RegistryKeys.ITEM, name, new BedItem(block, new Item.Settings().maxCount(1)));
|
Pivot.INSTANCE.register(RegistryKeys.ITEM, name, new BedItem(block, new Item.Settings().maxCount(1)));
|
||||||
|
26
xplat/src/main/java/gay/pridecraft/joy/registry/JoyPoi.java
Normal file
26
xplat/src/main/java/gay/pridecraft/joy/registry/JoyPoi.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package gay.pridecraft.joy.registry;
|
||||||
|
|
||||||
|
import gay.pridecraft.joy.JoyUtil;
|
||||||
|
import gay.pridecraft.joy.mixin.minecraft.AccessorPoi;
|
||||||
|
import net.minecraft.block.BedBlock;
|
||||||
|
import net.minecraft.block.enums.BedPart;
|
||||||
|
import net.minecraft.world.poi.PointOfInterestTypes;
|
||||||
|
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Ampflower
|
||||||
|
* @since 1.0.0
|
||||||
|
**/
|
||||||
|
public final class JoyPoi {
|
||||||
|
|
||||||
|
public static void init() {
|
||||||
|
AccessorPoi.invokeRegisterStates(
|
||||||
|
JoyUtil.getEntry(PointOfInterestTypes.HOME),
|
||||||
|
JoyBlocks.BEDS.stream()
|
||||||
|
.flatMap(JoyUtil::streamBlockStates)
|
||||||
|
.filter(state -> state.get(BedBlock.PART) == BedPart.HEAD)
|
||||||
|
.collect(Collectors.toSet())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -4,7 +4,10 @@
|
|||||||
"package": "gay.pridecraft.joy.mixin",
|
"package": "gay.pridecraft.joy.mixin",
|
||||||
"refmap": "joy.refmap.json",
|
"refmap": "joy.refmap.json",
|
||||||
"compatibilityLevel": "JAVA_21",
|
"compatibilityLevel": "JAVA_21",
|
||||||
"mixins": ["AllayEntityMixin", "LivingEntityMixin", "PaintingVariantsMixin"],
|
"mixins": [
|
||||||
|
"AllayEntityMixin", "LivingEntityMixin", "PaintingVariantsMixin",
|
||||||
|
"minecraft.AccessorPoi"
|
||||||
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user