mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-13 22:05:01 +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 {
|
public class AllBlocks {
|
||||||
|
|
||||||
static {
|
|
||||||
REGISTRATE.creativeModeTab(() -> Create.BASE_CREATIVE_TAB);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Schematics
|
// Schematics
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -1315,7 +1311,7 @@ public class AllBlocks {
|
||||||
String colourName = colour.getSerializedName();
|
String colourName = colour.getSerializedName();
|
||||||
SeatMovementBehaviour movementBehaviour = new SeatMovementBehaviour();
|
SeatMovementBehaviour movementBehaviour = new SeatMovementBehaviour();
|
||||||
SeatInteractionBehaviour interactionBehaviour = new SeatInteractionBehaviour();
|
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)
|
.initialProperties(SharedProperties::wooden)
|
||||||
.properties(p -> p.color(colour.getMaterialColor()))
|
.properties(p -> p.color(colour.getMaterialColor()))
|
||||||
.transform(axeOnly())
|
.transform(axeOnly())
|
||||||
|
@ -1409,14 +1405,14 @@ public class AllBlocks {
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<CasingBlock> SHADOW_STEEL_CASING =
|
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))
|
.properties(p -> p.color(MaterialColor.COLOR_BLACK))
|
||||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.SHADOW_STEEL_CASING))
|
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.SHADOW_STEEL_CASING))
|
||||||
.lang("Shadow Casing")
|
.lang("Shadow Casing")
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<CasingBlock> REFINED_RADIANCE_CASING =
|
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))
|
.properties(p -> p.color(MaterialColor.SNOW))
|
||||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.REFINED_RADIANCE_CASING))
|
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.REFINED_RADIANCE_CASING))
|
||||||
.properties(p -> p.lightLevel($ -> 12))
|
.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.AssetLookup;
|
||||||
import com.simibubi.create.foundation.data.CreateRegistrate;
|
import com.simibubi.create.foundation.data.CreateRegistrate;
|
||||||
import com.simibubi.create.foundation.data.recipe.CompatMetals;
|
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.TagDependentIngredientItem;
|
||||||
import com.simibubi.create.foundation.item.TooltipHelper;
|
import com.simibubi.create.foundation.item.TooltipHelper;
|
||||||
import com.tterrag.registrate.util.entry.ItemEntry;
|
import com.tterrag.registrate.util.entry.ItemEntry;
|
||||||
|
@ -72,10 +71,6 @@ import net.minecraftforge.common.Tags;
|
||||||
|
|
||||||
public class AllItems {
|
public class AllItems {
|
||||||
|
|
||||||
static {
|
|
||||||
REGISTRATE.creativeModeTab(() -> Create.BASE_CREATIVE_TAB);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Schematics
|
// Schematics
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -99,8 +94,8 @@ public class AllItems {
|
||||||
|
|
||||||
public static final ItemEntry<Item> PRECISION_MECHANISM = ingredient("precision_mechanism");
|
public static final ItemEntry<Item> PRECISION_MECHANISM = ingredient("precision_mechanism");
|
||||||
|
|
||||||
public static final ItemEntry<HiddenIngredientItem> BLAZE_CAKE_BASE =
|
public static final ItemEntry<Item> BLAZE_CAKE_BASE =
|
||||||
REGISTRATE.item("blaze_cake_base", HiddenIngredientItem::new)
|
REGISTRATE.item("blaze_cake_base", Item::new)
|
||||||
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
|
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ import com.mojang.logging.LogUtils;
|
||||||
import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour;
|
import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour;
|
||||||
import com.simibubi.create.compat.Mods;
|
import com.simibubi.create.compat.Mods;
|
||||||
import com.simibubi.create.compat.curios.Curios;
|
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.TorquePropagator;
|
||||||
import com.simibubi.create.content.contraptions.fluids.tank.BoilerHeaters;
|
import com.simibubi.create.content.contraptions.fluids.tank.BoilerHeaters;
|
||||||
import com.simibubi.create.content.curiosities.weapons.BuiltinPotatoProjectileTypes;
|
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.block.mechanicalArm.AllArmInteractionPointTypes;
|
||||||
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
|
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
|
||||||
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
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.ServerSchematicLoader;
|
||||||
import com.simibubi.create.content.schematics.filtering.SchematicInstances;
|
import com.simibubi.create.content.schematics.filtering.SchematicInstances;
|
||||||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||||
|
@ -46,7 +44,6 @@ import net.minecraft.data.DataGenerator;
|
||||||
import net.minecraft.data.PackOutput;
|
import net.minecraft.data.PackOutput;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.common.ForgeMod;
|
import net.minecraftforge.common.ForgeMod;
|
||||||
|
@ -79,9 +76,6 @@ public class Create {
|
||||||
|
|
||||||
public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID);
|
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 ServerSchematicLoader SCHEMATIC_RECEIVER = new ServerSchematicLoader();
|
||||||
public static final RedstoneLinkNetworkHandler REDSTONE_LINK_NETWORK_HANDLER = new RedstoneLinkNetworkHandler();
|
public static final RedstoneLinkNetworkHandler REDSTONE_LINK_NETWORK_HANDLER = new RedstoneLinkNetworkHandler();
|
||||||
public static final TorquePropagator TORQUE_PROPAGATOR = new TorquePropagator();
|
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 com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||||
|
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.InteractionResult;
|
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.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
public class CasingBlock extends Block implements IWrenchable {
|
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_) {
|
public CasingBlock(Properties p_i48440_1_) {
|
||||||
this(p_i48440_1_, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CasingBlock(Properties p_i48440_1_, boolean visible) {
|
|
||||||
super(p_i48440_1_);
|
super(p_i48440_1_);
|
||||||
this.visible = visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {
|
|
||||||
if (visible)
|
|
||||||
super.fillItemCategory(pCategory, pItems);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -14,7 +14,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.Entity;
|
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.TamableAnimal;
|
||||||
import net.minecraft.world.entity.monster.Shulker;
|
import net.minecraft.world.entity.monster.Shulker;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
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 {
|
public class SeatBlock extends Block implements ProperWaterloggedBlock {
|
||||||
|
|
||||||
protected final DyeColor color;
|
protected final DyeColor color;
|
||||||
protected final boolean inCreativeTab;
|
|
||||||
|
|
||||||
public SeatBlock(Properties properties, DyeColor color, boolean inCreativeTab) {
|
public SeatBlock(Properties properties, DyeColor color) {
|
||||||
super(properties);
|
super(properties);
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.inCreativeTab = inCreativeTab;
|
|
||||||
registerDefaultState(defaultBlockState().setValue(WATERLOGGED, false));
|
registerDefaultState(defaultBlockState().setValue(WATERLOGGED, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,13 +74,6 @@ public class SeatBlock extends Block implements ProperWaterloggedBlock {
|
||||||
return fluidState(pState);
|
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
|
@Override
|
||||||
public void fallOn(Level p_152426_, BlockState p_152427_, BlockPos p_152428_, Entity p_152429_, float p_152430_) {
|
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);
|
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.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
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.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
|
@ -44,12 +41,6 @@ public class CuckooClockBlock extends HorizontalKineticBlock implements ITE<Cuck
|
||||||
return AllShapes.CUCKOO_CLOCK;
|
return AllShapes.CUCKOO_CLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {
|
|
||||||
if (!mysterious)
|
|
||||||
super.fillItemCategory(group, items);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
Direction preferred = getPreferredHorizontalFacing(context);
|
Direction preferred = getPreferredHorizontalFacing(context);
|
||||||
|
|
|
@ -8,11 +8,9 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
import com.simibubi.create.foundation.utility.Couple;
|
import com.simibubi.create.foundation.utility.Couple;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
@ -25,20 +23,18 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
public class ValveHandleBlock extends HandCrankBlock {
|
public class ValveHandleBlock extends HandCrankBlock {
|
||||||
|
|
||||||
private final DyeColor color;
|
private final DyeColor color;
|
||||||
private final boolean inCreativeTab;
|
|
||||||
|
|
||||||
public static ValveHandleBlock copper(Properties properties) {
|
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) {
|
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);
|
super(properties);
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.inCreativeTab = inCreativeTab;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -57,13 +53,6 @@ public class ValveHandleBlock extends HandCrankBlock {
|
||||||
return super.use(state, world, pos, player, hand, hit);
|
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
|
@Override
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public PartialModel getRenderedHandle() {
|
public PartialModel getRenderedHandle() {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.function.Supplier;
|
||||||
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
@ -31,10 +32,11 @@ public class ContraptionBlockChangedPacket extends SimplePacketBase {
|
||||||
buffer.writeNbt(NbtUtils.writeBlockState(newState));
|
buffer.writeNbt(NbtUtils.writeBlockState(newState));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public ContraptionBlockChangedPacket(FriendlyByteBuf buffer) {
|
public ContraptionBlockChangedPacket(FriendlyByteBuf buffer) {
|
||||||
entityID = buffer.readInt();
|
entityID = buffer.readInt();
|
||||||
localPos = buffer.readBlockPos();
|
localPos = buffer.readBlockPos();
|
||||||
newState = NbtUtils.readBlockState(buffer.readNbt());
|
newState = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), buffer.readNbt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,7 +20,6 @@ import com.simibubi.create.foundation.utility.placement.PlacementOffset;
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.InteractionHand;
|
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.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.ShearsItem;
|
import net.minecraft.world.item.ShearsItem;
|
||||||
|
@ -66,13 +64,6 @@ public class SailBlock extends WrenchableDirectionalBlock {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab tab, NonNullList<ItemStack> items) {
|
|
||||||
if (frame || color == DyeColor.WHITE) {
|
|
||||||
super.fillItemCategory(tab, items);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
BlockState state = super.getStateForPlacement(context);
|
BlockState state = super.getStateForPlacement(context);
|
||||||
|
|
|
@ -4,10 +4,6 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
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 org.apache.commons.lang3.tuple.MutablePair;
|
||||||
|
|
||||||
import com.simibubi.create.AllItems;
|
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.advancement.AllAdvancements;
|
||||||
import com.simibubi.create.foundation.config.AllConfigs;
|
import com.simibubi.create.foundation.config.AllConfigs;
|
||||||
import com.simibubi.create.foundation.config.ContraptionMovementSetting;
|
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.Lang;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
|
||||||
|
@ -28,17 +25,16 @@ import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.BlockSource;
|
import net.minecraft.core.BlockSource;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
||||||
import net.minecraft.core.dispenser.DispenseItemBehavior;
|
import net.minecraft.core.dispenser.DispenseItemBehavior;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.entity.vehicle.AbstractMinecart;
|
import net.minecraft.world.entity.vehicle.AbstractMinecart;
|
||||||
import net.minecraft.world.entity.vehicle.AbstractMinecart.Type;
|
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.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
|
@ -197,9 +193,6 @@ public class MinecartContraptionItem extends Item {
|
||||||
return "item.create.minecart_contraption";
|
return "item.create.minecart_contraption";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void wrenchCanBeUsedToPickUpMinecartContraptions(PlayerInteractEvent.EntityInteract event) {
|
public static void wrenchCanBeUsedToPickUpMinecartContraptions(PlayerInteractEvent.EntityInteract event) {
|
||||||
Entity entity = event.getTarget();
|
Entity entity = event.getTarget();
|
||||||
|
|
|
@ -2,9 +2,7 @@ package com.simibubi.create.content.contraptions.itemAssembly;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.utility.Color;
|
import com.simibubi.create.foundation.utility.Color;
|
||||||
|
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
@ -24,9 +22,6 @@ public class SequencedAssemblyItem extends Item {
|
||||||
.getFloat("Progress");
|
.getFloat("Progress");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isBarVisible(ItemStack stack) {
|
public boolean isBarVisible(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -17,7 +17,6 @@ import com.simibubi.create.foundation.utility.Lang;
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.advancements.critereon.StatePropertiesPredicate;
|
import net.minecraft.advancements.critereon.StatePropertiesPredicate;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.util.StringRepresentable;
|
import net.minecraft.util.StringRepresentable;
|
||||||
|
@ -25,7 +24,6 @@ import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.FlintAndSteelItem;
|
import net.minecraft.world.item.FlintAndSteelItem;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
@ -83,12 +81,6 @@ public class BlazeBurnerBlock extends HorizontalDirectionalBlock implements ITE<
|
||||||
basin.notifyChangeOfContents();
|
basin.notifyChangeOfContents();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> list) {
|
|
||||||
list.add(AllItems.EMPTY_BLAZE_BURNER.asStack());
|
|
||||||
super.fillItemCategory(group, list);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<BlazeBurnerTileEntity> getTileEntityClass() {
|
public Class<BlazeBurnerTileEntity> getTileEntityClass() {
|
||||||
return BlazeBurnerTileEntity.class;
|
return BlazeBurnerTileEntity.class;
|
||||||
|
|
|
@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
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.monster.Blaze;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
|
@ -63,13 +61,6 @@ public class BlazeBurnerBlockItem extends BlockItem {
|
||||||
this.capturedBlaze = capturedBlaze;
|
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
|
@Override
|
||||||
public String getDescriptionId() {
|
public String getDescriptionId() {
|
||||||
return hasCapturedBlaze() ? super.getDescriptionId() : "item.create." + RegisteredObjects.getKeyOrThrow(this).getPath();
|
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;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
import net.minecraft.core.Direction.AxisDirection;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
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.Mob;
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
|
@ -103,11 +101,6 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEnt
|
||||||
consumer.accept(new RenderProperties());
|
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
|
@Override
|
||||||
protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) {
|
protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) {
|
||||||
return super.areStatesKineticallyEquivalent(oldState, newState)
|
return super.areStatesKineticallyEquivalent(oldState, newState)
|
||||||
|
|
|
@ -6,7 +6,6 @@ import java.util.List;
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.Create;
|
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
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.BeltBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltPart;
|
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;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
import net.minecraft.core.Direction.AxisDirection;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
|
@ -29,8 +27,6 @@ import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.BlockItem;
|
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.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
|
@ -48,13 +44,6 @@ public class BeltConnectorItem extends BlockItem {
|
||||||
return getOrCreateDescriptionId();
|
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
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult useOn(UseOnContext context) {
|
public InteractionResult useOn(UseOnContext context) {
|
||||||
|
|
|
@ -21,10 +21,8 @@ import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.Direction.AxisDirection;
|
import net.minecraft.core.Direction.AxisDirection;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
|
@ -72,9 +70,6 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock
|
||||||
super.createBlockStateDefinition(builder.add(TOP_SHAFT, BOTTOM_SHAFT));
|
super.createBlockStateDefinition(builder.add(TOP_SHAFT, BOTTOM_SHAFT));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) {
|
public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) {
|
||||||
if (target instanceof BlockHitResult)
|
if (target instanceof BlockHitResult)
|
||||||
|
|
|
@ -10,10 +10,8 @@ import com.simibubi.create.foundation.block.ITE;
|
||||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
@ -46,9 +44,6 @@ public class EncasedShaftBlock extends AbstractEncasedShaftBlock
|
||||||
return casing;
|
return casing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult onSneakWrenched(BlockState state, UseOnContext context) {
|
public InteractionResult onSneakWrenched(BlockState state, UseOnContext context) {
|
||||||
if (context.getLevel().isClientSide)
|
if (context.getLevel().isClientSide)
|
||||||
|
|
|
@ -11,9 +11,7 @@ import com.simibubi.create.foundation.block.ITE;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
@ -35,12 +33,6 @@ public class GearboxBlock extends RotatedPillarKineticBlock implements ITE<Gearb
|
||||||
return PushReaction.PUSH_ONLY;
|
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")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public List<ItemStack> getDrops(BlockState state, Builder builder) {
|
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.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
@ -26,10 +24,6 @@ public class VerticalGearboxItem extends BlockItem {
|
||||||
super(AllBlocks.GEARBOX.get(), builder);
|
super(AllBlocks.GEARBOX.get(), builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList<ItemStack> p_150895_2_) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDescriptionId() {
|
public String getDescriptionId() {
|
||||||
return "item.create.vertical_gearbox";
|
return "item.create.vertical_gearbox";
|
||||||
|
|
|
@ -14,14 +14,12 @@ import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.ClipContext;
|
import net.minecraft.world.level.ClipContext;
|
||||||
|
@ -46,9 +44,6 @@ public class ChromaticCompoundItem extends Item {
|
||||||
.getInt("CollectingLight");
|
.getInt("CollectingLight");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isBarVisible(ItemStack stack) {
|
public boolean isBarVisible(ItemStack stack) {
|
||||||
return getLight(stack) > 0;
|
return getLight(stack) > 0;
|
||||||
|
|
|
@ -2,12 +2,10 @@ package com.simibubi.create.content.curiosities;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
@ -19,9 +17,6 @@ public class NoGravMagicalDohickyItem extends Item {
|
||||||
super(p_i48487_1_);
|
super(p_i48487_1_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) {
|
public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) {
|
||||||
Level world = entity.level;
|
Level world = entity.level;
|
||||||
|
|
|
@ -12,7 +12,6 @@ import com.simibubi.create.foundation.block.ITE;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.ListTag;
|
import net.minecraft.nbt.ListTag;
|
||||||
import net.minecraft.network.chat.Component;
|
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.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
@ -65,9 +63,6 @@ public class CopperBacktankBlock extends HorizontalKineticBlock
|
||||||
super.createBlockStateDefinition(builder);
|
super.createBlockStateDefinition(builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
|
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -3,13 +3,11 @@ package com.simibubi.create.content.curiosities.armor;
|
||||||
import com.simibubi.create.content.curiosities.armor.CapacityEnchantment.ICapacityEnchantable;
|
import com.simibubi.create.content.curiosities.armor.CapacityEnchantment.ICapacityEnchantable;
|
||||||
import com.tterrag.registrate.util.entry.ItemEntry;
|
import com.tterrag.registrate.util.entry.ItemEntry;
|
||||||
|
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
@ -40,18 +38,6 @@ public class CopperBacktankItem extends CopperArmorItem implements ICapacityEnch
|
||||||
return true;
|
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
|
@Override
|
||||||
public boolean isBarVisible(ItemStack stack) {
|
public boolean isBarVisible(ItemStack stack) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -78,9 +64,6 @@ public class CopperBacktankItem extends CopperArmorItem implements ICapacityEnch
|
||||||
super(pBlock, pProperties);
|
super(pBlock, pProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pGroup, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDescriptionId() {
|
public String getDescriptionId() {
|
||||||
return this.getOrCreateDescriptionId();
|
return this.getOrCreateDescriptionId();
|
||||||
|
|
|
@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
@ -20,7 +19,6 @@ import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.DyeColor;
|
import net.minecraft.world.item.DyeColor;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
@ -53,13 +51,6 @@ public class ToolboxBlock extends HorizontalDirectionalBlock implements SimpleWa
|
||||||
registerDefaultState(defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false));
|
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
|
@Override
|
||||||
public FluidState getFluidState(BlockState state) {
|
public FluidState getFluidState(BlockState state) {
|
||||||
return state.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : Fluids.EMPTY.defaultFluidState();
|
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 com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
|
@ -87,7 +88,7 @@ public class ZapperInteractionHandler {
|
||||||
data.remove("id");
|
data.remove("id");
|
||||||
}
|
}
|
||||||
CompoundTag tag = stack.getOrCreateTag();
|
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"))) {
|
.getCompound("BlockUsed")) == newState && Objects.equals(data, tag.get("BlockData"))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.model.HumanoidModel.ArmPose;
|
import net.minecraft.client.model.HumanoidModel.ArmPose;
|
||||||
import net.minecraft.client.player.AbstractClientPlayer;
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
|
@ -71,6 +72,7 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
||||||
boolean differentBlock = false;
|
boolean differentBlock = false;
|
||||||
|
@ -78,8 +80,8 @@ public abstract class ZapperItem extends Item implements CustomArmPoseItem {
|
||||||
.contains("BlockUsed")
|
.contains("BlockUsed")
|
||||||
&& newStack.getTag()
|
&& newStack.getTag()
|
||||||
.contains("BlockUsed"))
|
.contains("BlockUsed"))
|
||||||
differentBlock = NbtUtils.readBlockState(oldStack.getTag()
|
differentBlock = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), oldStack.getTag()
|
||||||
.getCompound("BlockUsed")) != NbtUtils.readBlockState(
|
.getCompound("BlockUsed")) != NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(),
|
||||||
newStack.getTag()
|
newStack.getTag()
|
||||||
.getCompound("BlockUsed"));
|
.getCompound("BlockUsed"));
|
||||||
return slotChanged || !isZapper(newStack) || differentBlock;
|
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.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType;
|
import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType;
|
||||||
import net.minecraft.client.resources.model.BakedModel;
|
import net.minecraft.client.resources.model.BakedModel;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
@ -27,8 +28,9 @@ public abstract class ZapperItemRenderer<M extends CustomRenderedItemModel> exte
|
||||||
renderBlockUsed(stack, ms, buffer, light, overlay);
|
renderBlockUsed(stack, ms, buffer, light, overlay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
private void renderBlockUsed(ItemStack stack, PoseStack ms, MultiBufferSource buffer, int light, int overlay) {
|
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"));
|
.getCompound("BlockUsed"));
|
||||||
|
|
||||||
ms.pushPose();
|
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.Lang;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
@ -127,6 +128,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen {
|
||||||
.render(ms);
|
.render(ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
protected void renderBlock(PoseStack ms, int x, int y) {
|
protected void renderBlock(PoseStack ms, int x, int y) {
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(x + 32, y + 42, 120);
|
ms.translate(x + 32, y + 42, 120);
|
||||||
|
@ -137,7 +139,7 @@ public abstract class ZapperScreen extends AbstractSimiScreen {
|
||||||
BlockState state = Blocks.AIR.defaultBlockState();
|
BlockState state = Blocks.AIR.defaultBlockState();
|
||||||
if (zapper.hasTag() && zapper.getTag()
|
if (zapper.hasTag() && zapper.getTag()
|
||||||
.contains("BlockUsed"))
|
.contains("BlockUsed"))
|
||||||
state = NbtUtils.readBlockState(zapper.getTag()
|
state = NbtUtils.readBlockState(BuiltInRegistries.BLOCK.asLookup(), zapper.getTag()
|
||||||
.getCompound("BlockUsed"));
|
.getCompound("BlockUsed"));
|
||||||
|
|
||||||
GuiGameElement.of(state)
|
GuiGameElement.of(state)
|
||||||
|
|
|
@ -35,7 +35,6 @@ import net.minecraft.world.Container;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
|
@ -59,8 +58,7 @@ public interface ItemAttribute {
|
||||||
|
|
||||||
static ItemAttribute standard = register(StandardTraits.DUMMY);
|
static ItemAttribute standard = register(StandardTraits.DUMMY);
|
||||||
static ItemAttribute inTag = register(new InTag(ItemTags.LOGS));
|
static ItemAttribute inTag = register(new InTag(ItemTags.LOGS));
|
||||||
static ItemAttribute inItemGroup = register(new InItemGroup(CreativeModeTab.TAB_MISC));
|
static ItemAttribute addedBy = register(new AddedBy("dummy"));
|
||||||
static ItemAttribute addedBy = register(new InItemGroup.AddedBy("dummy"));
|
|
||||||
static ItemAttribute hasEnchant = register(EnchantAttribute.EMPTY);
|
static ItemAttribute hasEnchant = register(EnchantAttribute.EMPTY);
|
||||||
static ItemAttribute shulkerFillLevel = register(ShulkerFillLevelAttribute.EMPTY);
|
static ItemAttribute shulkerFillLevel = register(ShulkerFillLevelAttribute.EMPTY);
|
||||||
static ItemAttribute hasColor = register(ColorAttribute.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 {
|
public static class AddedBy implements ItemAttribute {
|
||||||
|
|
||||||
private String modId;
|
private String modId;
|
||||||
|
|
|
@ -16,8 +16,6 @@ import java.util.function.Function;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.minecraft.server.MinecraftServer;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.mutable.MutableDouble;
|
import org.apache.commons.lang3.mutable.MutableDouble;
|
||||||
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
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.CompoundTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.util.Mth;
|
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.client.player.LocalPlayer;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.item.MapItem;
|
import net.minecraft.world.item.MapItem;
|
||||||
|
@ -92,12 +90,6 @@ public class StationBlock extends Block implements ITE<StationTileEntity>, IWren
|
||||||
.orElse(0);
|
.orElse(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pTab, NonNullList<ItemStack> pItems) {
|
|
||||||
pItems.add(AllItems.SCHEDULE.asStack());
|
|
||||||
super.fillItemCategory(pTab, pItems);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) {
|
public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) {
|
||||||
ITE.onRemove(state, worldIn, pos, newState);
|
ITE.onRemove(state, worldIn, pos, newState);
|
||||||
|
|
|
@ -16,7 +16,6 @@ import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.MutableComponent;
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
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.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
|
@ -169,7 +167,4 @@ public class ScheduleItem extends Item implements MenuProvider {
|
||||||
return getDescription();
|
return getDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab pCategory, NonNullList<ItemStack> pItems) {}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,6 @@ public class AllPaletteBlocks {
|
||||||
|
|
||||||
static {
|
static {
|
||||||
REGISTRATE
|
REGISTRATE
|
||||||
.creativeModeTab(() -> Create.PALETTES_CREATIVE_TAB)
|
|
||||||
.startSection(AllSections.PALETTES);
|
.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 {
|
public static class EmptierChunk extends LevelChunk {
|
||||||
|
|
||||||
private static final class DummyLevel extends Level {
|
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_,
|
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_);
|
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) {
|
private DummyLevel(RegistryAccess access) {
|
||||||
this.access = access;
|
this(null, null, access
|
||||||
return this;
|
.registryOrThrow(Registries.DIMENSION_TYPE)
|
||||||
|
.getHolderOrThrow(BuiltinDimensionTypes.OVERWORLD), null, false, false, 0, 0, access);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -214,7 +217,7 @@ public class SchematicChunkSource extends ChunkSource {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FeatureFlagSet enabledFeatures() {
|
public FeatureFlagSet enabledFeatures() {
|
||||||
return null;
|
return FeatureFlagSet.of();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -222,12 +225,8 @@ public class SchematicChunkSource extends ChunkSource {
|
||||||
SoundSource pSource, float pVolume, float pPitch, long pSeed) {}
|
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) {
|
public EmptierChunk(RegistryAccess registryAccess) {
|
||||||
super(DUMMY_LEVEL.withAccess(registryAccess), null);
|
super(new DummyLevel(registryAccess), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockState getBlockState(BlockPos p_180495_1_) {
|
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 com.simibubi.create.foundation.utility.Lang;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtIo;
|
import net.minecraft.nbt.NbtIo;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
@ -271,7 +272,7 @@ public class ServerSchematicLoader {
|
||||||
if (table == null)
|
if (table == null)
|
||||||
return;
|
return;
|
||||||
table.finishUpload();
|
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()));
|
.getName()));
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -337,7 +338,7 @@ public class ServerSchematicLoader {
|
||||||
SchematicAndQuillItem.replaceStructureVoidWithAir(nbttagcompound);
|
SchematicAndQuillItem.replaceStructureVoidWithAir(nbttagcompound);
|
||||||
SchematicAndQuillItem.clampGlueBoxes(world, new AABB(pos, pos.offset(bounds)), nbttagcompound);
|
SchematicAndQuillItem.clampGlueBoxes(world, new AABB(pos, pos.offset(bounds)), nbttagcompound);
|
||||||
NbtIo.writeCompressed(nbttagcompound, outputStream);
|
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()));
|
.getName()));
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
|
@ -12,6 +12,7 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.Axis;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
|
@ -108,10 +109,11 @@ public abstract class LaunchedItem {
|
||||||
return serializeNBT;
|
return serializeNBT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
void readNBT(CompoundTag nbt) {
|
void readNBT(CompoundTag nbt) {
|
||||||
super.readNBT(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)) {
|
if (nbt.contains("Data", Tag.TAG_COMPOUND)) {
|
||||||
data = nbt.getCompound("Data");
|
data = nbt.getCompound("Data");
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.HolderGetter;
|
import net.minecraft.core.HolderGetter;
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtAccounter;
|
import net.minecraft.nbt.NbtAccounter;
|
||||||
import net.minecraft.nbt.NbtIo;
|
import net.minecraft.nbt.NbtIo;
|
||||||
|
@ -37,7 +36,6 @@ import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
|
@ -77,9 +75,6 @@ public class SchematicItem extends Item {
|
||||||
return blueprint;
|
return blueprint;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@OnlyIn(value = Dist.CLIENT)
|
@OnlyIn(value = Dist.CLIENT)
|
||||||
public void appendHoverText(ItemStack stack, Level worldIn, List<Component> tooltip, TooltipFlag flagIn) {
|
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)
|
for (CreateAdvancement advancement : ENTRIES)
|
||||||
advancement.save(consumer);
|
advancement.save(consumer);
|
||||||
|
|
||||||
return CompletableFuture.allOf(futures.toArray((entry) -> new CompletableFuture[entry]));
|
return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -54,7 +54,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
|
||||||
public CompletableFuture<?> run(CachedOutput dc) {
|
public CompletableFuture<?> run(CachedOutput dc) {
|
||||||
return CompletableFuture.allOf(GENERATORS.stream()
|
return CompletableFuture.allOf(GENERATORS.stream()
|
||||||
.map(gen -> gen.run(dc))
|
.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;
|
package com.simibubi.create.foundation.item;
|
||||||
|
|
||||||
import net.minecraft.core.NonNullList;
|
|
||||||
import net.minecraft.tags.TagKey;
|
import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
import net.minecraftforge.registries.tags.ITagManager;
|
import net.minecraftforge.registries.tags.ITagManager;
|
||||||
|
|
||||||
|
@ -17,12 +14,6 @@ public class TagDependentIngredientItem extends Item {
|
||||||
this.tag = tag;
|
this.tag = tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillItemCategory(CreativeModeTab tab, NonNullList<ItemStack> list) {
|
|
||||||
if (!shouldHide())
|
|
||||||
super.fillItemCategory(tab, list);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean shouldHide() {
|
public boolean shouldHide() {
|
||||||
ITagManager<Item> tagManager = ForgeRegistries.ITEMS.tags();
|
ITagManager<Item> tagManager = ForgeRegistries.ITEMS.tags();
|
||||||
return !tagManager.isKnownTagName(tag) || tagManager.getTag(tag).isEmpty();
|
return !tagManager.isKnownTagName(tag) || tagManager.getTag(tag).isEmpty();
|
||||||
|
|
Loading…
Reference in a new issue