mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-05 01:45:00 +01:00
Tab issue
- Port creative tabs - Fix rest of NbtUtils.readBlockState errors - Use CompletableFuture[]::new where applicable
This commit is contained in:
parent
de412a74ea
commit
1be1574fe7
45 changed files with 361 additions and 464 deletions
|
@ -277,10 +277,6 @@ import net.minecraftforge.common.Tags;
|
|||
|
||||
public class AllBlocks {
|
||||
|
||||
static {
|
||||
REGISTRATE.creativeModeTab(() -> Create.BASE_CREATIVE_TAB);
|
||||
}
|
||||
|
||||
// Schematics
|
||||
|
||||
static {
|
||||
|
@ -1315,7 +1311,7 @@ public class AllBlocks {
|
|||
String colourName = colour.getSerializedName();
|
||||
SeatMovementBehaviour movementBehaviour = new SeatMovementBehaviour();
|
||||
SeatInteractionBehaviour interactionBehaviour = new SeatInteractionBehaviour();
|
||||
return REGISTRATE.block(colourName + "_seat", p -> new SeatBlock(p, colour, colour == DyeColor.RED))
|
||||
return REGISTRATE.block(colourName + "_seat", p -> new SeatBlock(p, colour))
|
||||
.initialProperties(SharedProperties::wooden)
|
||||
.properties(p -> p.color(colour.getMaterialColor()))
|
||||
.transform(axeOnly())
|
||||
|
@ -1409,14 +1405,14 @@ public class AllBlocks {
|
|||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> SHADOW_STEEL_CASING =
|
||||
REGISTRATE.block("shadow_steel_casing", CasingBlock::deprecated)
|
||||
REGISTRATE.block("shadow_steel_casing", CasingBlock::new)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_BLACK))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.SHADOW_STEEL_CASING))
|
||||
.lang("Shadow Casing")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> REFINED_RADIANCE_CASING =
|
||||
REGISTRATE.block("refined_radiance_casing", CasingBlock::deprecated)
|
||||
REGISTRATE.block("refined_radiance_casing", CasingBlock::new)
|
||||
.properties(p -> p.color(MaterialColor.SNOW))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.REFINED_RADIANCE_CASING))
|
||||
.properties(p -> p.lightLevel($ -> 12))
|
||||
|
|
315
src/main/java/com/simibubi/create/AllCreativeModeTabs.java
Normal file
315
src/main/java/com/simibubi/create/AllCreativeModeTabs.java
Normal file
|
@ -0,0 +1,315 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.simibubi.create.content.AllSections;
|
||||
import com.simibubi.create.content.contraptions.components.actors.SeatBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock;
|
||||
import com.simibubi.create.content.curiosities.armor.BackTankUtil;
|
||||
import com.simibubi.create.content.curiosities.toolbox.ToolboxBlock;
|
||||
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
||||
import com.simibubi.create.foundation.item.TagDependentIngredientItem;
|
||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||
import com.tterrag.registrate.util.entry.ItemEntry;
|
||||
import com.tterrag.registrate.util.entry.ItemProviderEntry;
|
||||
import com.tterrag.registrate.util.entry.RegistryEntry;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.objects.ReferenceArrayList;
|
||||
import it.unimi.dsi.fastutil.objects.ReferenceLinkedOpenHashSet;
|
||||
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||
import net.minecraft.client.resources.model.BakedModel;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.flag.FeatureFlagSet;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.CreativeModeTab.DisplayItemsGenerator;
|
||||
import net.minecraft.world.item.CreativeModeTab.Output;
|
||||
import net.minecraft.world.item.CreativeModeTab.TabVisibility;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.event.CreativeModeTabEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
|
||||
|
||||
@EventBusSubscriber(bus = Bus.MOD)
|
||||
public class AllCreativeModeTabs {
|
||||
private static CreativeModeTab baseTab;
|
||||
private static CreativeModeTab palettesTab;
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onCreativeModeTabRegister(CreativeModeTabEvent.Register event) {
|
||||
baseTab = event.registerCreativeModeTab(Create.asResource("base"), builder -> {
|
||||
builder.title(Component.translatable("itemGroup.create.base"))
|
||||
.icon(() -> AllBlocks.COGWHEEL.asStack())
|
||||
.displayItems(new RegistrateDisplayItemsGenerator(EnumSet.complementOf(EnumSet.of(AllSections.PALETTES)), true));
|
||||
});
|
||||
|
||||
palettesTab = event.registerCreativeModeTab(Create.asResource("palettes"), builder -> {
|
||||
builder.title(Component.translatable("itemGroup.create.palettes"))
|
||||
.icon(() -> AllPaletteBlocks.ORNATE_IRON_WINDOW.asStack())
|
||||
.displayItems(new RegistrateDisplayItemsGenerator(EnumSet.of(AllSections.PALETTES), false));
|
||||
});
|
||||
}
|
||||
|
||||
public static CreativeModeTab getBaseTab() {
|
||||
return baseTab;
|
||||
}
|
||||
|
||||
public static CreativeModeTab getPalettesTab() {
|
||||
return palettesTab;
|
||||
}
|
||||
|
||||
private static class RegistrateDisplayItemsGenerator implements DisplayItemsGenerator {
|
||||
private final EnumSet<AllSections> sections;
|
||||
private final boolean addItems;
|
||||
|
||||
public RegistrateDisplayItemsGenerator(EnumSet<AllSections> sections, boolean addItems) {
|
||||
this.sections = sections;
|
||||
this.addItems = addItems;
|
||||
}
|
||||
private static Predicate<Item> makeExclusionPredicate() {
|
||||
Set<Item> exclusions = new ReferenceOpenHashSet<>();
|
||||
|
||||
List<ItemProviderEntry<?>> simpleExclusions = List.of(
|
||||
AllItems.INCOMPLETE_PRECISION_MECHANISM,
|
||||
AllItems.INCOMPLETE_REINFORCED_SHEET,
|
||||
AllItems.INCOMPLETE_TRACK,
|
||||
AllItems.CHROMATIC_COMPOUND,
|
||||
AllItems.SHADOW_STEEL,
|
||||
AllItems.REFINED_RADIANCE,
|
||||
AllItems.COPPER_BACKTANK_PLACEABLE,
|
||||
AllItems.MINECART_CONTRAPTION,
|
||||
AllItems.FURNACE_MINECART_CONTRAPTION,
|
||||
AllItems.CHEST_MINECART_CONTRAPTION,
|
||||
AllItems.SCHEMATIC,
|
||||
AllBlocks.ANDESITE_ENCASED_SHAFT,
|
||||
AllBlocks.BRASS_ENCASED_SHAFT,
|
||||
AllBlocks.ANDESITE_ENCASED_COGWHEEL,
|
||||
AllBlocks.BRASS_ENCASED_COGWHEEL,
|
||||
AllBlocks.ANDESITE_ENCASED_LARGE_COGWHEEL,
|
||||
AllBlocks.BRASS_ENCASED_LARGE_COGWHEEL,
|
||||
AllBlocks.MYSTERIOUS_CUCKOO_CLOCK,
|
||||
AllBlocks.SHADOW_STEEL_CASING,
|
||||
AllBlocks.REFINED_RADIANCE_CASING
|
||||
);
|
||||
|
||||
List<ItemEntry<TagDependentIngredientItem>> tagDependentExclusions = List.of(
|
||||
AllItems.CRUSHED_OSMIUM,
|
||||
AllItems.CRUSHED_PLATINUM,
|
||||
AllItems.CRUSHED_SILVER,
|
||||
AllItems.CRUSHED_TIN,
|
||||
AllItems.CRUSHED_LEAD,
|
||||
AllItems.CRUSHED_QUICKSILVER,
|
||||
AllItems.CRUSHED_BAUXITE,
|
||||
AllItems.CRUSHED_URANIUM,
|
||||
AllItems.CRUSHED_NICKEL
|
||||
);
|
||||
|
||||
for (ItemProviderEntry<?> entry : simpleExclusions) {
|
||||
exclusions.add(entry.asItem());
|
||||
}
|
||||
|
||||
for (ItemEntry<TagDependentIngredientItem> entry : tagDependentExclusions) {
|
||||
TagDependentIngredientItem item = entry.get();
|
||||
if (item.shouldHide()) {
|
||||
exclusions.add(entry.asItem());
|
||||
}
|
||||
}
|
||||
|
||||
return exclusions::contains;
|
||||
}
|
||||
|
||||
private static List<ItemOrdering> makeOrderings() {
|
||||
List<ItemOrdering> orderings = new ReferenceArrayList<>();
|
||||
|
||||
Map<ItemProviderEntry<?>, ItemProviderEntry<?>> simpleBeforeOrderings = Map.of(
|
||||
AllItems.EMPTY_BLAZE_BURNER, AllBlocks.BLAZE_BURNER,
|
||||
AllItems.BELT_CONNECTOR, AllBlocks.CREATIVE_MOTOR,
|
||||
AllItems.SCHEDULE, AllBlocks.TRACK_STATION
|
||||
);
|
||||
|
||||
Map<ItemProviderEntry<?>, ItemProviderEntry<?>> simpleAfterOrderings = Map.of(
|
||||
AllItems.VERTICAL_GEARBOX, AllBlocks.GEARBOX
|
||||
);
|
||||
|
||||
simpleBeforeOrderings.forEach((entry, otherEntry) -> {
|
||||
orderings.add(ItemOrdering.before(entry.asItem(), otherEntry.asItem()));
|
||||
});
|
||||
|
||||
simpleAfterOrderings.forEach((entry, otherEntry) -> {
|
||||
orderings.add(ItemOrdering.after(entry.asItem(), otherEntry.asItem()));
|
||||
});
|
||||
|
||||
return orderings;
|
||||
}
|
||||
|
||||
private static Function<Item, ItemStack> makeStackFunc() {
|
||||
Map<Item, Function<Item, ItemStack>> factories = new Reference2ReferenceOpenHashMap<>();
|
||||
|
||||
Map<ItemProviderEntry<?>, Function<Item, ItemStack>> simpleFactories = Map.of(
|
||||
AllItems.COPPER_BACKTANK, item -> {
|
||||
ItemStack stack = new ItemStack(item);
|
||||
stack.getOrCreateTag().putInt("Air", BackTankUtil.maxAirWithoutEnchants());
|
||||
return stack;
|
||||
}
|
||||
);
|
||||
|
||||
simpleFactories.forEach((entry, factory) -> {
|
||||
factories.put(entry.asItem(), factory);
|
||||
});
|
||||
|
||||
return item -> {
|
||||
Function<Item, ItemStack> factory = factories.get(item);
|
||||
if (factory != null) {
|
||||
return factory.apply(item);
|
||||
}
|
||||
return new ItemStack(item);
|
||||
};
|
||||
}
|
||||
|
||||
private static Function<Item, TabVisibility> makeVisibilityFunc() {
|
||||
Map<Item, TabVisibility> visibilities = new Reference2ObjectOpenHashMap<>();
|
||||
|
||||
Map<ItemProviderEntry<?>, TabVisibility> simpleVisibilities = Map.of(
|
||||
AllItems.BLAZE_CAKE_BASE, TabVisibility.SEARCH_TAB_ONLY
|
||||
);
|
||||
|
||||
simpleVisibilities.forEach((entry, factory) -> {
|
||||
visibilities.put(entry.asItem(), factory);
|
||||
});
|
||||
|
||||
for (BlockEntry<ValveHandleBlock> entry : AllBlocks.DYED_VALVE_HANDLES) {
|
||||
visibilities.put(entry.asItem(), TabVisibility.SEARCH_TAB_ONLY);
|
||||
}
|
||||
|
||||
for (BlockEntry<SeatBlock> entry : AllBlocks.SEATS) {
|
||||
SeatBlock block = entry.get();
|
||||
if (block.getColor() != DyeColor.RED) {
|
||||
visibilities.put(entry.asItem(), TabVisibility.SEARCH_TAB_ONLY);
|
||||
}
|
||||
}
|
||||
|
||||
for (BlockEntry<ToolboxBlock> entry : AllBlocks.TOOLBOXES) {
|
||||
ToolboxBlock block = entry.get();
|
||||
if (block.getColor() != DyeColor.BROWN) {
|
||||
visibilities.put(entry.asItem(), TabVisibility.SEARCH_TAB_ONLY);
|
||||
}
|
||||
}
|
||||
|
||||
return item -> {
|
||||
TabVisibility visibility = visibilities.get(item);
|
||||
if (visibility != null) {
|
||||
return visibility;
|
||||
}
|
||||
return TabVisibility.PARENT_AND_SEARCH_TABS;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(FeatureFlagSet features, Output output, boolean isOperator) {
|
||||
ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
|
||||
Predicate<Item> exclusionPredicate = makeExclusionPredicate();
|
||||
List<ItemOrdering> orderings = makeOrderings();
|
||||
Function<Item, ItemStack> stackFunc = makeStackFunc();
|
||||
Function<Item, TabVisibility> visibilityFunc = makeVisibilityFunc();
|
||||
|
||||
if (addItems) {
|
||||
outputAll(output, collectItems(itemRenderer, true, exclusionPredicate, orderings), stackFunc, visibilityFunc);
|
||||
}
|
||||
|
||||
outputAll(output, collectBlocks(exclusionPredicate, orderings), stackFunc, visibilityFunc);
|
||||
|
||||
if (addItems) {
|
||||
outputAll(output, collectItems(itemRenderer, false, exclusionPredicate, orderings), stackFunc, visibilityFunc);
|
||||
}
|
||||
}
|
||||
|
||||
private List<Item> collectBlocks(Predicate<Item> exclusionPredicate, List<ItemOrdering> orderings) {
|
||||
List<Item> items = new ReferenceArrayList<>();
|
||||
for (AllSections section : sections) {
|
||||
for (RegistryEntry<Block> entry : Create.REGISTRATE.getAll(section, Registries.BLOCK)) {
|
||||
Item item = entry.get().asItem();
|
||||
if (item != Items.AIR) {
|
||||
if (!exclusionPredicate.test(item)) {
|
||||
items.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
items = new LinkedList<>(new ReferenceLinkedOpenHashSet<>(items));
|
||||
applyOrderings(items, orderings);
|
||||
return items;
|
||||
}
|
||||
|
||||
private List<Item> collectItems(ItemRenderer itemRenderer, boolean special, Predicate<Item> exclusionPredicate, List<ItemOrdering> orderings) {
|
||||
List<Item> items = new LinkedList<>();
|
||||
for (AllSections section : sections) {
|
||||
for (RegistryEntry<Item> entry : Create.REGISTRATE.getAll(section, Registries.ITEM)) {
|
||||
Item item = entry.get();
|
||||
if (!(item instanceof BlockItem)) {
|
||||
BakedModel model = itemRenderer.getModel(new ItemStack(item), null, null, 0);
|
||||
if (model.isGui3d() == special) {
|
||||
if (!exclusionPredicate.test(item)) {
|
||||
items.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
applyOrderings(items, orderings);
|
||||
return items;
|
||||
}
|
||||
|
||||
private static void applyOrderings(List<Item> items, List<ItemOrdering> orderings) {
|
||||
for (ItemOrdering ordering : orderings) {
|
||||
int anchorIndex = items.indexOf(ordering.anchor());
|
||||
if (anchorIndex != -1) {
|
||||
Item item = ordering.item();
|
||||
if (items.remove(item)) {
|
||||
if (ordering.type() == ItemOrdering.Type.AFTER) {
|
||||
items.add(anchorIndex + 1, item);
|
||||
} else {
|
||||
items.add(anchorIndex, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void outputAll(Output output, List<Item> items, Function<Item, ItemStack> stackFunc, Function<Item, TabVisibility> visibilityFunc) {
|
||||
for (Item item : items) {
|
||||
output.accept(stackFunc.apply(item), visibilityFunc.apply(item));
|
||||
}
|
||||
}
|
||||
|
||||
private record ItemOrdering(Item item, Item anchor, Type type) {
|
||||
public static ItemOrdering before(Item item, Item anchor) {
|
||||
return new ItemOrdering(item, anchor, Type.BEFORE);
|
||||
}
|
||||
|
||||
public static ItemOrdering after(Item item, Item anchor) {
|
||||
return new ItemOrdering(item, anchor, Type.AFTER);
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
BEFORE,
|
||||
AFTER;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -58,7 +58,6 @@ import com.simibubi.create.content.schematics.item.SchematicItem;
|
|||
import com.simibubi.create.foundation.data.AssetLookup;
|
||||
import com.simibubi.create.foundation.data.CreateRegistrate;
|
||||
import com.simibubi.create.foundation.data.recipe.CompatMetals;
|
||||
import com.simibubi.create.foundation.item.HiddenIngredientItem;
|
||||
import com.simibubi.create.foundation.item.TagDependentIngredientItem;
|
||||
import com.simibubi.create.foundation.item.TooltipHelper;
|
||||
import com.tterrag.registrate.util.entry.ItemEntry;
|
||||
|
@ -72,10 +71,6 @@ import net.minecraftforge.common.Tags;
|
|||
|
||||
public class AllItems {
|
||||
|
||||
static {
|
||||
REGISTRATE.creativeModeTab(() -> Create.BASE_CREATIVE_TAB);
|
||||
}
|
||||
|
||||
// Schematics
|
||||
|
||||
static {
|
||||
|
@ -99,8 +94,8 @@ public class AllItems {
|
|||
|
||||
public static final ItemEntry<Item> PRECISION_MECHANISM = ingredient("precision_mechanism");
|
||||
|
||||
public static final ItemEntry<HiddenIngredientItem> BLAZE_CAKE_BASE =
|
||||
REGISTRATE.item("blaze_cake_base", HiddenIngredientItem::new)
|
||||
public static final ItemEntry<Item> BLAZE_CAKE_BASE =
|
||||
REGISTRATE.item("blaze_cake_base", Item::new)
|
||||
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
|
||||
.register();
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ import com.mojang.logging.LogUtils;
|
|||
import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour;
|
||||
import com.simibubi.create.compat.Mods;
|
||||
import com.simibubi.create.compat.curios.Curios;
|
||||
import com.simibubi.create.content.CreateItemGroup;
|
||||
import com.simibubi.create.content.contraptions.TorquePropagator;
|
||||
import com.simibubi.create.content.contraptions.fluids.tank.BoilerHeaters;
|
||||
import com.simibubi.create.content.curiosities.weapons.BuiltinPotatoProjectileTypes;
|
||||
|
@ -19,7 +18,6 @@ import com.simibubi.create.content.logistics.block.display.AllDisplayBehaviours;
|
|||
import com.simibubi.create.content.logistics.block.mechanicalArm.AllArmInteractionPointTypes;
|
||||
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
|
||||
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
||||
import com.simibubi.create.content.palettes.PalettesItemGroup;
|
||||
import com.simibubi.create.content.schematics.ServerSchematicLoader;
|
||||
import com.simibubi.create.content.schematics.filtering.SchematicInstances;
|
||||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||
|
@ -46,7 +44,6 @@ import net.minecraft.data.DataGenerator;
|
|||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.common.ForgeMod;
|
||||
|
@ -79,9 +76,6 @@ public class Create {
|
|||
|
||||
public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID);
|
||||
|
||||
public static final CreativeModeTab BASE_CREATIVE_TAB = new CreateItemGroup();
|
||||
public static final CreativeModeTab PALETTES_CREATIVE_TAB = new PalettesItemGroup();
|
||||
|
||||
public static final ServerSchematicLoader SCHEMATIC_RECEIVER = new ServerSchematicLoader();
|
||||
public static final RedstoneLinkNetworkHandler REDSTONE_LINK_NETWORK_HANDLER = new RedstoneLinkNetworkHandler();
|
||||
public static final TorquePropagator TORQUE_PROPAGATOR = new TorquePropagator();
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package com.simibubi.create.content;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.foundation.item.CreateItemGroupBase;
|
||||
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
public class CreateItemGroup extends CreateItemGroupBase {
|
||||
|
||||
public CreateItemGroup() {
|
||||
super("base");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EnumSet<AllSections> getSections() {
|
||||
return EnumSet.complementOf(EnumSet.of(AllSections.PALETTES));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack makeIcon() {
|
||||
return AllBlocks.COGWHEEL.asStack();
|
||||
}
|
||||
|
||||
}
|
|
@ -2,35 +2,15 @@ package com.simibubi.create.content.contraptions.base;
|
|||
|
||||
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class CasingBlock extends Block implements IWrenchable {
|
||||
|
||||
private boolean visible;
|
||||
|
||||
public static CasingBlock deprecated(Properties p_i48440_1_) {
|
||||
return new CasingBlock(p_i48440_1_, false);
|
||||
}
|
||||
|
||||
public CasingBlock(Properties p_i48440_1_) {
|
||||
this(p_i48440_1_, true);
|
||||
}
|
||||
|
||||
public CasingBlock(Properties p_i48440_1_, boolean visible) {
|
||||
super(p_i48440_1_);
|
||||
this.visible = visible;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {
|
||||
if (visible)
|
||||
super.fillItemCategory(pCategory, pItems);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -14,7 +14,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
|||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
|
@ -23,7 +22,6 @@ import net.minecraft.world.entity.Mob;
|
|||
import net.minecraft.world.entity.TamableAnimal;
|
||||
import net.minecraft.world.entity.monster.Shulker;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
|
@ -47,12 +45,10 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
|||
public class SeatBlock extends Block implements ProperWaterloggedBlock {
|
||||
|
||||
protected final DyeColor color;
|
||||
protected final boolean inCreativeTab;
|
||||
|
||||
public SeatBlock(Properties properties, DyeColor color, boolean inCreativeTab) {
|
||||
public SeatBlock(Properties properties, DyeColor color) {
|
||||
super(properties);
|
||||
this.color = color;
|
||||
this.inCreativeTab = inCreativeTab;
|
||||
registerDefaultState(defaultBlockState().setValue(WATERLOGGED, false));
|
||||
}
|
||||
|
||||
|
@ -78,13 +74,6 @@ public class SeatBlock extends Block implements ProperWaterloggedBlock {
|
|||
return fluidState(pState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> p_149666_2_) {
|
||||
if (group != CreativeModeTab.TAB_SEARCH && !inCreativeTab)
|
||||
return;
|
||||
super.fillItemCategory(group, p_149666_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fallOn(Level p_152426_, BlockState p_152427_, BlockPos p_152428_, Entity p_152429_, float p_152430_) {
|
||||
super.fallOn(p_152426_, p_152427_, p_152428_, p_152429_, p_152430_ * 0.5F);
|
||||
|
|
|
@ -8,9 +8,6 @@ import com.simibubi.create.foundation.block.ITE;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
|
@ -43,12 +40,6 @@ public class CuckooClockBlock extends HorizontalKineticBlock implements ITE<Cuck
|
|||
CollisionContext p_220053_4_) {
|
||||
return AllShapes.CUCKOO_CLOCK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {
|
||||
if (!mysterious)
|
||||
super.fillItemCategory(group, items);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
|
|
|
@ -8,11 +8,9 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
|||
import com.simibubi.create.foundation.utility.Couple;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
@ -25,20 +23,18 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
|||
public class ValveHandleBlock extends HandCrankBlock {
|
||||
|
||||
private final DyeColor color;
|
||||
private final boolean inCreativeTab;
|
||||
|
||||
public static ValveHandleBlock copper(Properties properties) {
|
||||
return new ValveHandleBlock(properties, null, true);
|
||||
return new ValveHandleBlock(properties, null);
|
||||
}
|
||||
|
||||
public static ValveHandleBlock dyed(Properties properties, DyeColor color) {
|
||||
return new ValveHandleBlock(properties, color, false);
|
||||
return new ValveHandleBlock(properties, color);
|
||||
}
|
||||
|
||||
private ValveHandleBlock(Properties properties, DyeColor color, boolean inCreativeTab) {
|
||||
private ValveHandleBlock(Properties properties, DyeColor color) {
|
||||
super(properties);
|
||||
this.color = color;
|
||||
this.inCreativeTab = inCreativeTab;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -57,13 +53,6 @@ public class ValveHandleBlock extends HandCrankBlock {
|
|||
return super.use(state, world, pos, player, hand, hit);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> p_149666_2_) {
|
||||
if (group != CreativeModeTab.TAB_SEARCH && !inCreativeTab)
|
||||
return;
|
||||
super.fillItemCategory(group, p_149666_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public PartialModel getRenderedHandle() {
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.function.Supplier;
|
|||
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -31,10 +32,11 @@ public class ContraptionBlockChangedPacket extends SimplePacketBase {
|
|||
buffer.writeNbt(NbtUtils.writeBlockState(newState));
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public ContraptionBlockChangedPacket(FriendlyByteBuf buffer) {
|
||||
entityID = buffer.readInt();
|
||||
localPos = buffer.readBlockPos();
|
||||
newState = NbtUtils.readBlockState(buffer.readNbt());
|
||||
newState = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), buffer.readNbt());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -20,7 +20,6 @@ import com.simibubi.create.foundation.utility.placement.PlacementOffset;
|
|||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
@ -29,7 +28,6 @@ import net.minecraft.world.entity.Entity;
|
|||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ShearsItem;
|
||||
|
@ -66,13 +64,6 @@ public class SailBlock extends WrenchableDirectionalBlock {
|
|||
this.color = color;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab tab, NonNullList<ItemStack> items) {
|
||||
if (frame || color == DyeColor.WHITE) {
|
||||
super.fillItemCategory(tab, items);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
BlockState state = super.getStateForPlacement(context);
|
||||
|
|
|
@ -4,10 +4,6 @@ import java.util.List;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.foundation.utility.ContraptionData;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
|
||||
import org.apache.commons.lang3.tuple.MutablePair;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
|
@ -21,6 +17,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Ori
|
|||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.config.ContraptionMovementSetting;
|
||||
import com.simibubi.create.foundation.utility.ContraptionData;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
|
||||
|
@ -28,17 +25,16 @@ import net.minecraft.ChatFormatting;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.BlockSource;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
||||
import net.minecraft.core.dispenser.DispenseItemBehavior;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.entity.vehicle.AbstractMinecart;
|
||||
import net.minecraft.world.entity.vehicle.AbstractMinecart.Type;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
|
@ -197,9 +193,6 @@ public class MinecartContraptionItem extends Item {
|
|||
return "item.create.minecart_contraption";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void wrenchCanBeUsedToPickUpMinecartContraptions(PlayerInteractEvent.EntityInteract event) {
|
||||
Entity entity = event.getTarget();
|
||||
|
|
|
@ -2,9 +2,7 @@ package com.simibubi.create.content.contraptions.itemAssembly;
|
|||
|
||||
import com.simibubi.create.foundation.utility.Color;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
|
@ -24,9 +22,6 @@ public class SequencedAssemblyItem extends Item {
|
|||
.getFloat("Progress");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {}
|
||||
|
||||
@Override
|
||||
public boolean isBarVisible(ItemStack stack) {
|
||||
return true;
|
||||
|
|
|
@ -17,7 +17,6 @@ import com.simibubi.create.foundation.utility.Lang;
|
|||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.advancements.critereon.StatePropertiesPredicate;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
|
@ -25,7 +24,6 @@ import net.minecraft.world.InteractionHand;
|
|||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.FlintAndSteelItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -83,12 +81,6 @@ public class BlazeBurnerBlock extends HorizontalDirectionalBlock implements ITE<
|
|||
basin.notifyChangeOfContents();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> list) {
|
||||
list.add(AllItems.EMPTY_BLAZE_BURNER.asStack());
|
||||
super.fillItemCategory(group, list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<BlazeBurnerTileEntity> getTileEntityClass() {
|
||||
return BlazeBurnerTileEntity.class;
|
||||
|
|
|
@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.VecHelper;
|
|||
|
||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
|
@ -25,7 +24,6 @@ import net.minecraft.world.entity.LivingEntity;
|
|||
import net.minecraft.world.entity.monster.Blaze;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
|
@ -63,13 +61,6 @@ public class BlazeBurnerBlockItem extends BlockItem {
|
|||
this.capturedBlaze = capturedBlaze;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
|
||||
if (!hasCapturedBlaze())
|
||||
return;
|
||||
super.fillItemCategory(p_150895_1_, p_150895_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescriptionId() {
|
||||
return hasCapturedBlaze() ? super.getDescriptionId() : "item.create." + RegisteredObjects.getKeyOrThrow(this).getPath();
|
||||
|
|
|
@ -37,7 +37,6 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.Direction.AxisDirection;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
|
@ -47,7 +46,6 @@ import net.minecraft.world.entity.Entity;
|
|||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
|
@ -103,11 +101,6 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEnt
|
|||
consumer.accept(new RenderProperties());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_149666_1_, NonNullList<ItemStack> p_149666_2_) {
|
||||
p_149666_2_.add(AllItems.BELT_CONNECTOR.asStack());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) {
|
||||
return super.areStatesKineticallyEquivalent(oldState, newState)
|
||||
|
|
|
@ -6,7 +6,6 @@ import java.util.List;
|
|||
import javax.annotation.Nonnull;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltPart;
|
||||
|
@ -21,7 +20,6 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.Direction.AxisDirection;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
|
@ -29,8 +27,6 @@ import net.minecraft.sounds.SoundSource;
|
|||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
|
@ -48,13 +44,6 @@ public class BeltConnectorItem extends BlockItem {
|
|||
return getOrCreateDescriptionId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
|
||||
if (p_150895_1_ == Create.BASE_CREATIVE_TAB)
|
||||
return;
|
||||
super.fillItemCategory(p_150895_1_, p_150895_2_);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public InteractionResult useOn(UseOnContext context) {
|
||||
|
|
|
@ -21,10 +21,8 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.Direction.AxisDirection;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
|
@ -72,9 +70,6 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock
|
|||
super.createBlockStateDefinition(builder.add(TOP_SHAFT, BOTTOM_SHAFT));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
@Override
|
||||
public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) {
|
||||
if (target instanceof BlockHitResult)
|
||||
|
|
|
@ -10,10 +10,8 @@ import com.simibubi.create.foundation.block.ITE;
|
|||
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
|
@ -46,9 +44,6 @@ public class EncasedShaftBlock extends AbstractEncasedShaftBlock
|
|||
return casing;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
@Override
|
||||
public InteractionResult onSneakWrenched(BlockState state, UseOnContext context) {
|
||||
if (context.getLevel().isClientSide)
|
||||
|
|
|
@ -11,9 +11,7 @@ import com.simibubi.create.foundation.block.ITE;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
|
@ -35,12 +33,6 @@ public class GearboxBlock extends RotatedPillarKineticBlock implements ITE<Gearb
|
|||
return PushReaction.PUSH_ONLY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {
|
||||
super.fillItemCategory(group, items);
|
||||
items.add(AllItems.VERTICAL_GEARBOX.asStack());
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public List<ItemStack> getDrops(BlockState state, Builder builder) {
|
||||
|
|
|
@ -9,10 +9,8 @@ import com.simibubi.create.foundation.utility.Iterate;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
@ -25,10 +23,6 @@ public class VerticalGearboxItem extends BlockItem {
|
|||
public VerticalGearboxItem(Properties builder) {
|
||||
super(AllBlocks.GEARBOX.get(), builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescriptionId() {
|
||||
|
|
|
@ -14,14 +14,12 @@ import com.simibubi.create.foundation.utility.VecHelper;
|
|||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.ClipContext;
|
||||
|
@ -46,9 +44,6 @@ public class ChromaticCompoundItem extends Item {
|
|||
.getInt("CollectingLight");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
@Override
|
||||
public boolean isBarVisible(ItemStack stack) {
|
||||
return getLight(stack) > 0;
|
||||
|
|
|
@ -2,12 +2,10 @@ package com.simibubi.create.content.curiosities;
|
|||
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
@ -19,9 +17,6 @@ public class NoGravMagicalDohickyItem extends Item {
|
|||
super(p_i48487_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
@Override
|
||||
public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) {
|
||||
Level world = entity.level;
|
||||
|
|
|
@ -12,7 +12,6 @@ import com.simibubi.create.foundation.block.ITE;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
|
@ -24,7 +23,6 @@ import net.minecraft.world.entity.EquipmentSlot;
|
|||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
|
@ -65,9 +63,6 @@ public class CopperBacktankBlock extends HorizontalKineticBlock
|
|||
super.createBlockStateDefinition(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
@Override
|
||||
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
|
||||
return true;
|
||||
|
|
|
@ -3,13 +3,11 @@ package com.simibubi.create.content.curiosities.armor;
|
|||
import com.simibubi.create.content.curiosities.armor.CapacityEnchantment.ICapacityEnchantable;
|
||||
import com.tterrag.registrate.util.entry.ItemEntry;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
@ -40,18 +38,6 @@ public class CopperBacktankItem extends CopperArmorItem implements ICapacityEnch
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
|
||||
if (!allowedIn(p_150895_1_))
|
||||
return;
|
||||
|
||||
ItemStack stack = new ItemStack(this);
|
||||
CompoundTag nbt = new CompoundTag();
|
||||
nbt.putInt("Air", BackTankUtil.maxAirWithoutEnchants());
|
||||
stack.setTag(nbt);
|
||||
p_150895_2_.add(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBarVisible(ItemStack stack) {
|
||||
return true;
|
||||
|
@ -78,9 +64,6 @@ public class CopperBacktankItem extends CopperArmorItem implements ICapacityEnch
|
|||
super(pBlock, pProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pGroup, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
@Override
|
||||
public String getDescriptionId() {
|
||||
return this.getOrCreateDescriptionId();
|
||||
|
|
|
@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
|||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -20,7 +19,6 @@ import net.minecraft.world.InteractionHand;
|
|||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
|
@ -53,13 +51,6 @@ public class ToolboxBlock extends HorizontalDirectionalBlock implements SimpleWa
|
|||
registerDefaultState(defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> p_149666_2_) {
|
||||
if (group != CreativeModeTab.TAB_SEARCH && color != DyeColor.BROWN)
|
||||
return;
|
||||
super.fillItemCategory(group, p_149666_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidState getFluidState(BlockState state) {
|
||||
return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : Fluids.EMPTY.defaultFluidState();
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.simibubi.create.AllTags.AllBlockTags;
|
|||
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
|
@ -87,7 +88,7 @@ public class ZapperInteractionHandler {
|
|||
data.remove("id");
|
||||
}
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
if (tag.contains("BlockUsed") && NbtUtils.readBlockState(stack.getTag()
|
||||
if (tag.contains("BlockUsed") && NbtUtils.readBlockState(player.level.holderLookup(Registries.BLOCK), stack.getTag()
|
||||
.getCompound("BlockUsed")) == newState && Objects.equals(data, tag.get("BlockData"))) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import net.minecraft.ChatFormatting;
|
|||
import net.minecraft.client.model.HumanoidModel.ArmPose;
|
||||
import net.minecraft.client.player.AbstractClientPlayer;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
|
@ -71,6 +72,7 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
||||
boolean differentBlock = false;
|
||||
|
@ -78,8 +80,8 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
|
|||
.contains("BlockUsed")
|
||||
&& newStack.getTag()
|
||||
.contains("BlockUsed"))
|
||||
differentBlock = NbtUtils.readBlockState(oldStack.getTag()
|
||||
.getCompound("BlockUsed")) != NbtUtils.readBlockState(
|
||||
differentBlock = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), oldStack.getTag()
|
||||
.getCompound("BlockUsed")) != NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(),
|
||||
newStack.getTag()
|
||||
.getCompound("BlockUsed"));
|
||||
return slotChanged || !isZapper(newStack) || differentBlock;
|
||||
|
|
|
@ -10,6 +10,7 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType;
|
||||
import net.minecraft.client.resources.model.BakedModel;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -27,8 +28,9 @@ public abstract class ZapperItemRenderer<M extends CustomRenderedItemModel> exte
|
|||
renderBlockUsed(stack, ms, buffer, light, overlay);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void renderBlockUsed(ItemStack stack, PoseStack ms, MultiBufferSource buffer, int light, int overlay) {
|
||||
BlockState state = NbtUtils.readBlockState(stack.getTag()
|
||||
BlockState state = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), stack.getTag()
|
||||
.getCompound("BlockUsed"));
|
||||
|
||||
ms.pushPose();
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.simibubi.create.foundation.utility.Components;
|
|||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.network.chat.Component;
|
||||
|
@ -127,6 +128,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen {
|
|||
.render(ms);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void renderBlock(PoseStack ms, int x, int y) {
|
||||
ms.pushPose();
|
||||
ms.translate(x + 32, y + 42, 120);
|
||||
|
@ -137,7 +139,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen {
|
|||
BlockState state = Blocks.AIR.defaultBlockState();
|
||||
if (zapper.hasTag() && zapper.getTag()
|
||||
.contains("BlockUsed"))
|
||||
state = NbtUtils.readBlockState(zapper.getTag()
|
||||
state = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), zapper.getTag()
|
||||
.getCompound("BlockUsed"));
|
||||
|
||||
GuiGameElement.of(state)
|
||||
|
|
|
@ -35,7 +35,6 @@ import net.minecraft.world.Container;
|
|||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.crafting.Recipe;
|
||||
|
@ -59,8 +58,7 @@ public interface ItemAttribute {
|
|||
|
||||
static ItemAttribute standard = register(StandardTraits.DUMMY);
|
||||
static ItemAttribute inTag = register(new InTag(ItemTags.LOGS));
|
||||
static ItemAttribute inItemGroup = register(new InItemGroup(CreativeModeTab.TAB_MISC));
|
||||
static ItemAttribute addedBy = register(new InItemGroup.AddedBy("dummy"));
|
||||
static ItemAttribute addedBy = register(new AddedBy("dummy"));
|
||||
static ItemAttribute hasEnchant = register(EnchantAttribute.EMPTY);
|
||||
static ItemAttribute shulkerFillLevel = register(ShulkerFillLevelAttribute.EMPTY);
|
||||
static ItemAttribute hasColor = register(ColorAttribute.EMPTY);
|
||||
|
@ -273,56 +271,6 @@ public interface ItemAttribute {
|
|||
|
||||
}
|
||||
|
||||
public static class InItemGroup implements ItemAttribute {
|
||||
|
||||
private CreativeModeTab group;
|
||||
|
||||
public InItemGroup(CreativeModeTab group) {
|
||||
this.group = group;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean appliesTo(ItemStack stack) {
|
||||
Item item = stack.getItem();
|
||||
return item.getItemCategory() == group;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ItemAttribute> listAttributesOf(ItemStack stack) {
|
||||
CreativeModeTab group = stack.getItem()
|
||||
.getItemCategory();
|
||||
return group == null ? Collections.emptyList() : Arrays.asList(new InItemGroup(group));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTranslationKey() {
|
||||
return "in_item_group";
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(value = Dist.CLIENT)
|
||||
public MutableComponent format(boolean inverted) {
|
||||
return Lang.translateDirect("item_attributes." + getTranslationKey() + (inverted ? ".inverted" : ""),
|
||||
group.getDisplayName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeNBT(CompoundTag nbt) {
|
||||
nbt.putString("path", group.getRecipeFolderName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemAttribute readNBT(CompoundTag nbt) {
|
||||
String readPath = nbt.getString("path");
|
||||
for (CreativeModeTab group : CreativeModeTab.TABS)
|
||||
if (group.getRecipeFolderName()
|
||||
.equals(readPath))
|
||||
return new InItemGroup(group);
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class AddedBy implements ItemAttribute {
|
||||
|
||||
private String modId;
|
||||
|
|
|
@ -16,8 +16,6 @@ import java.util.function.Function;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
|
||||
import org.apache.commons.lang3.mutable.MutableDouble;
|
||||
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||
|
@ -37,6 +35,7 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.Tag;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.Mth;
|
||||
|
|
|
@ -14,13 +14,11 @@ import com.simibubi.create.foundation.gui.ScreenOpener;
|
|||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.MapItem;
|
||||
|
@ -92,12 +90,6 @@ public class StationBlock extends Block implements ITE<StationTileEntity>, IWren
|
|||
.orElse(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {
|
||||
pItems.add(AllItems.SCHEDULE.asStack());
|
||||
super.fillItemCategory(pTab, pItems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) {
|
||||
ITE.onRemove(state, worldIn, pos, newState);
|
||||
|
|
|
@ -16,7 +16,6 @@ import com.simibubi.create.foundation.utility.Lang;
|
|||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -29,7 +28,6 @@ import net.minecraft.world.entity.LivingEntity;
|
|||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
|
@ -169,7 +167,4 @@ public class ScheduleItem extends Item implements MenuProvider {
|
|||
return getDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {}
|
||||
|
||||
}
|
||||
|
|
|
@ -33,7 +33,6 @@ public class AllPaletteBlocks {
|
|||
|
||||
static {
|
||||
REGISTRATE
|
||||
.creativeModeTab(() -> Create.PALETTES_CREATIVE_TAB)
|
||||
.startSection(AllSections.PALETTES);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
package com.simibubi.create.content.palettes;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import com.simibubi.create.content.AllSections;
|
||||
import com.simibubi.create.foundation.item.CreateItemGroupBase;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
public class PalettesItemGroup extends CreateItemGroupBase {
|
||||
|
||||
public PalettesItemGroup() {
|
||||
super("palettes");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EnumSet<AllSections> getSections() {
|
||||
return EnumSet.of(AllSections.PALETTES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addItems(NonNullList<ItemStack> items, boolean specialItems) {}
|
||||
|
||||
@Override
|
||||
public ItemStack makeIcon() {
|
||||
return new ItemStack(AllPaletteBlocks.ORNATE_IRON_WINDOW.get());
|
||||
}
|
||||
|
||||
}
|
|
@ -96,16 +96,19 @@ public class SchematicChunkSource extends ChunkSource {
|
|||
public static class EmptierChunk extends LevelChunk {
|
||||
|
||||
private static final class DummyLevel extends Level {
|
||||
private RegistryAccess access;
|
||||
private final RegistryAccess access;
|
||||
|
||||
private DummyLevel(WritableLevelData p_46450_, ResourceKey<Level> p_46451_, Holder<DimensionType> p_46452_,
|
||||
Supplier<ProfilerFiller> p_46453_, boolean p_46454_, boolean p_46455_, long p_46456_, int p_220359_) {
|
||||
Supplier<ProfilerFiller> p_46453_, boolean p_46454_, boolean p_46455_, long p_46456_, int p_220359_,
|
||||
RegistryAccess access) {
|
||||
super(p_46450_, p_46451_, p_46452_, p_46453_, p_46454_, p_46455_, p_46456_, p_220359_);
|
||||
this.access = access;
|
||||
}
|
||||
|
||||
public Level withAccess(RegistryAccess access) {
|
||||
this.access = access;
|
||||
return this;
|
||||
private DummyLevel(RegistryAccess access) {
|
||||
this(null, null, access
|
||||
.registryOrThrow(Registries.DIMENSION_TYPE)
|
||||
.getHolderOrThrow(BuiltinDimensionTypes.OVERWORLD), null, false, false, 0, 0, access);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -214,7 +217,7 @@ public class SchematicChunkSource extends ChunkSource {
|
|||
|
||||
@Override
|
||||
public FeatureFlagSet enabledFeatures() {
|
||||
return null;
|
||||
return FeatureFlagSet.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -222,12 +225,8 @@ public class SchematicChunkSource extends ChunkSource {
|
|||
SoundSource pSource, float pVolume, float pPitch, long pSeed) {}
|
||||
}
|
||||
|
||||
private static final DummyLevel DUMMY_LEVEL = new DummyLevel(null, null, RegistryAccess.BUILTIN.get()
|
||||
.registryOrThrow(Registries.DIMENSION_TYPE)
|
||||
.getHolderOrThrow(BuiltinDimensionTypes.OVERWORLD), null, false, false, 0, 0);
|
||||
|
||||
public EmptierChunk(RegistryAccess registryAccess) {
|
||||
super(DUMMY_LEVEL.withAccess(registryAccess), null);
|
||||
super(new DummyLevel(registryAccess), null);
|
||||
}
|
||||
|
||||
public BlockState getBlockState(BlockPos p_180495_1_) {
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.simibubi.create.foundation.utility.FilesHelper;
|
|||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtIo;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -271,7 +272,7 @@ public class ServerSchematicLoader {
|
|||
if (table == null)
|
||||
return;
|
||||
table.finishUpload();
|
||||
table.inventory.setStackInSlot(1, SchematicItem.create(schematic, player.getGameProfile()
|
||||
table.inventory.setStackInSlot(1, SchematicItem.create(world.holderLookup(Registries.BLOCK), schematic, player.getGameProfile()
|
||||
.getName()));
|
||||
|
||||
} catch (IOException e) {
|
||||
|
@ -337,7 +338,7 @@ public class ServerSchematicLoader {
|
|||
SchematicAndQuillItem.replaceStructureVoidWithAir(nbttagcompound);
|
||||
SchematicAndQuillItem.clampGlueBoxes(world, new AABB(pos, pos.offset(bounds)), nbttagcompound);
|
||||
NbtIo.writeCompressed(nbttagcompound, outputStream);
|
||||
player.setItemInHand(InteractionHand.MAIN_HAND, SchematicItem.create(schematic, player.getGameProfile()
|
||||
player.setItemInHand(InteractionHand.MAIN_HAND, SchematicItem.create(world.holderLookup(Registries.BLOCK), schematic, player.getGameProfile()
|
||||
.getName()));
|
||||
|
||||
} catch (IOException e) {
|
||||
|
|
|
@ -12,6 +12,7 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
|||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.nbt.Tag;
|
||||
|
@ -108,10 +109,11 @@ public abstract class LaunchedItem {
|
|||
return serializeNBT;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
void readNBT(CompoundTag nbt) {
|
||||
super.readNBT(nbt);
|
||||
state = NbtUtils.readBlockState(nbt.getCompound("BlockState"));
|
||||
state = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), nbt.getCompound("BlockState"));
|
||||
if (nbt.contains("Data", Tag.TAG_COMPOUND)) {
|
||||
data = nbt.getCompound("Data");
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ import com.simibubi.create.foundation.utility.NBTHelper;
|
|||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.HolderGetter;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtAccounter;
|
||||
import net.minecraft.nbt.NbtIo;
|
||||
|
@ -37,7 +36,6 @@ import net.minecraft.world.InteractionHand;
|
|||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
|
@ -77,9 +75,6 @@ public class SchematicItem extends Item {
|
|||
return blueprint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {}
|
||||
|
||||
@Override
|
||||
@OnlyIn(value = Dist.CLIENT)
|
||||
public void appendHoverText(ItemStack stack, Level worldIn, List<Component> tooltip, TooltipFlag flagIn) {
|
||||
|
|
|
@ -638,7 +638,7 @@ public class AllAdvancements implements DataProvider {
|
|||
for (CreateAdvancement advancement : ENTRIES)
|
||||
advancement.save(consumer);
|
||||
|
||||
return CompletableFuture.allOf(futures.toArray((entry) -> new CompletableFuture[entry]));
|
||||
return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -54,7 +54,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
|
|||
public CompletableFuture<?> run(CachedOutput dc) {
|
||||
return CompletableFuture.allOf(GENERATORS.stream()
|
||||
.map(gen -> gen.run(dc))
|
||||
.toArray(size -> new CompletableFuture[size]));
|
||||
.toArray(CompletableFuture[]::new));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,84 +0,0 @@
|
|||
package com.simibubi.create.foundation.item;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.EnumSet;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.AllSections;
|
||||
import com.tterrag.registrate.util.entry.RegistryEntry;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||
import net.minecraft.client.resources.model.BakedModel;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public abstract class CreateItemGroupBase extends CreativeModeTab {
|
||||
|
||||
public CreateItemGroupBase(String id) {
|
||||
super(Create.ID + "." + id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void fillItemList(NonNullList<ItemStack> items) {
|
||||
addItems(items, true);
|
||||
addBlocks(items);
|
||||
addItems(items, false);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void addBlocks(NonNullList<ItemStack> items) {
|
||||
for (RegistryEntry<? extends Block> entry : getBlocks()) {
|
||||
Block def = entry.get();
|
||||
Item item = def.asItem();
|
||||
if (item != Items.AIR)
|
||||
def.fillItemCategory(this, items);
|
||||
}
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void addItems(NonNullList<ItemStack> items, boolean specialItems) {
|
||||
ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer();
|
||||
|
||||
for (RegistryEntry<? extends Item> entry : getItems()) {
|
||||
Item item = entry.get();
|
||||
if (item instanceof BlockItem)
|
||||
continue;
|
||||
ItemStack stack = new ItemStack(item);
|
||||
BakedModel model = itemRenderer.getModel(stack, null, null, 0);
|
||||
if (model.isGui3d() != specialItems)
|
||||
continue;
|
||||
item.fillItemCategory(this, items);
|
||||
}
|
||||
}
|
||||
|
||||
protected Collection<RegistryEntry<Block>> getBlocks() {
|
||||
return getSections().stream()
|
||||
.flatMap(s -> Create.REGISTRATE
|
||||
.getAll(s, Registries.BLOCK)
|
||||
.stream())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
protected Collection<RegistryEntry<Item>> getItems() {
|
||||
return getSections().stream()
|
||||
.flatMap(s -> Create.REGISTRATE
|
||||
.getAll(s, Registries.ITEM)
|
||||
.stream())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
protected EnumSet<AllSections> getSections() {
|
||||
return EnumSet.allOf(AllSections.class);
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package com.simibubi.create.foundation.item;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
public class HiddenIngredientItem extends Item {
|
||||
|
||||
public HiddenIngredientItem(Properties p_i48487_1_) {
|
||||
super(p_i48487_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
|
||||
if (p_150895_1_ != CreativeModeTab.TAB_SEARCH)
|
||||
return;
|
||||
super.fillItemCategory(p_150895_1_, p_150895_2_);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,10 +1,7 @@
|
|||
package com.simibubi.create.foundation.item;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.tags.ITagManager;
|
||||
|
||||
|
@ -17,12 +14,6 @@ public class TagDependentIngredientItem extends Item {
|
|||
this.tag = tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab tab, NonNullList<ItemStack> list) {
|
||||
if (!shouldHide())
|
||||
super.fillItemCategory(tab, list);
|
||||
}
|
||||
|
||||
public boolean shouldHide() {
|
||||
ITagManager<Item> tagManager = ForgeRegistries.ITEMS.tags();
|
||||
return !tagManager.isKnownTagName(tag) || tagManager.getTag(tag).isEmpty();
|
||||
|
|
Loading…
Reference in a new issue