Remove unnecessary code

- Remove block vertex color code
- Remove experimentalRendering config
- Move as much Item.Properties configuration to AllItems as possible
This commit is contained in:
PepperCode1 2022-02-06 12:22:43 -08:00
parent 9c42988135
commit 3c71e8041b
14 changed files with 22 additions and 185 deletions

View file

@ -27,10 +27,10 @@ boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equal
// The project is named Flywheel-Forge, but sub-projects are named by folder. // The project is named Flywheel-Forge, but sub-projects are named by folder.
boolean inWorkspace = findProject(':Flywheel') != null boolean inWorkspace = findProject(':Flywheel') != null
ext.buildnumber = 0 ext.buildNumber = System.getenv('BUILD_NUMBER')
project.buildnumber = System.getenv('BUILD_NUMBER') != null ? System.getenv('BUILD_NUMBER') : 'custom' if (buildNumber == null) buildNumber = 'custom'
version = "mc${minecraft_version}_v${mod_version}" + (dev && !buildnumber.equals('custom') ? "+${buildnumber}" : '') version = "mc${minecraft_version}_v${mod_version}" + (dev && !buildNumber.equals('custom') ? "+${buildNumber}" : '')
group = 'com.simibubi.create' group = 'com.simibubi.create'
archivesBaseName = 'create' archivesBaseName = 'create'

View file

@ -288,16 +288,17 @@ public class AllItems {
public static final ItemEntry<PotatoCannonItem> POTATO_CANNON = public static final ItemEntry<PotatoCannonItem> POTATO_CANNON =
REGISTRATE.item("potato_cannon", PotatoCannonItem::new) REGISTRATE.item("potato_cannon", PotatoCannonItem::new)
.properties(p -> p.stacksTo(1))
.model(AssetLookup.itemModelWithPartials()) .model(AssetLookup.itemModelWithPartials())
.register(); .register();
public static final ItemEntry<ExtendoGripItem> EXTENDO_GRIP = REGISTRATE.item("extendo_grip", ExtendoGripItem::new) public static final ItemEntry<ExtendoGripItem> EXTENDO_GRIP = REGISTRATE.item("extendo_grip", ExtendoGripItem::new)
.properties(p -> p.rarity(Rarity.UNCOMMON))
.model(AssetLookup.itemModelWithPartials()) .model(AssetLookup.itemModelWithPartials())
.register(); .register();
public static final ItemEntry<SymmetryWandItem> WAND_OF_SYMMETRY = public static final ItemEntry<SymmetryWandItem> WAND_OF_SYMMETRY =
REGISTRATE.item("wand_of_symmetry", SymmetryWandItem::new) REGISTRATE.item("wand_of_symmetry", SymmetryWandItem::new)
.properties(p -> p.stacksTo(1).rarity(Rarity.UNCOMMON))
.model(AssetLookup.itemModelWithPartials()) .model(AssetLookup.itemModelWithPartials())
.register(); .register();

View file

@ -32,7 +32,6 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
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.Rarity;
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.Block; import net.minecraft.world.level.block.Block;
@ -57,8 +56,7 @@ public class SymmetryWandItem extends Item {
private static final String ENABLE = "enable"; private static final String ENABLE = "enable";
public SymmetryWandItem(Properties properties) { public SymmetryWandItem(Properties properties) {
super(properties.stacksTo(1) super(properties);
.rarity(Rarity.UNCOMMON));
} }
@Nonnull @Nonnull

View file

@ -30,7 +30,6 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ProjectileUtil; import net.minecraft.world.entity.projectile.ProjectileUtil;
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.Rarity;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.EntityHitResult;
@ -55,8 +54,6 @@ import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
@EventBusSubscriber @EventBusSubscriber
public class ExtendoGripItem extends Item { public class ExtendoGripItem extends Item {
private static DamageSource lastActiveDamageSource;
public static final int MAX_DAMAGE = 200; public static final int MAX_DAMAGE = 200;
public static final AttributeModifier singleRangeAttributeModifier = public static final AttributeModifier singleRangeAttributeModifier =
@ -66,19 +63,19 @@ public class ExtendoGripItem extends Item {
new AttributeModifier(UUID.fromString("8f7dbdb2-0d0d-458a-aa40-ac7633691f66"), "Range modifier", 5, new AttributeModifier(UUID.fromString("8f7dbdb2-0d0d-458a-aa40-ac7633691f66"), "Range modifier", 5,
AttributeModifier.Operation.ADDITION); AttributeModifier.Operation.ADDITION);
static Supplier<Multimap<Attribute, AttributeModifier>> rangeModifier = Suppliers.memoize(() -> private static final Supplier<Multimap<Attribute, AttributeModifier>> rangeModifier = Suppliers.memoize(() ->
// Holding an ExtendoGrip // Holding an ExtendoGrip
ImmutableMultimap.of(ForgeMod.REACH_DISTANCE.get(), singleRangeAttributeModifier) ImmutableMultimap.of(ForgeMod.REACH_DISTANCE.get(), singleRangeAttributeModifier)
); );
private static final Supplier<Multimap<Attribute, AttributeModifier>> doubleRangeModifier = Suppliers.memoize(() ->
static Supplier<Multimap<Attribute, AttributeModifier>> doubleRangeModifier = Suppliers.memoize(() ->
// Holding two ExtendoGrips o.O // Holding two ExtendoGrips o.O
ImmutableMultimap.of(ForgeMod.REACH_DISTANCE.get(), doubleRangeAttributeModifier) ImmutableMultimap.of(ForgeMod.REACH_DISTANCE.get(), doubleRangeAttributeModifier)
); );
private static DamageSource lastActiveDamageSource;
public ExtendoGripItem(Properties properties) { public ExtendoGripItem(Properties properties) {
super(properties.stacksTo(1) super(properties.defaultDurability(MAX_DAMAGE));
.rarity(Rarity.UNCOMMON));
} }
public static final String EXTENDO_MARKER = "createExtendo"; public static final String EXTENDO_MARKER = "createExtendo";
@ -194,10 +191,10 @@ public class ExtendoGripItem extends Item {
findAndDamageExtendoGrip((Player) entity); findAndDamageExtendoGrip((Player) entity);
} }
@SubscribeEvent(priority = EventPriority.LOWEST) // @SubscribeEvent(priority = EventPriority.LOWEST)
public static void consumeDurabilityOnPlace(PlayerInteractEvent event) { // public static void consumeDurabilityOnPlace(PlayerInteractEvent event) {
// findAndDamageExtendoGrip(event.getPlayer()); // findAndDamageExtendoGrip(event.getPlayer());
} // }
private static void findAndDamageExtendoGrip(Player player) { private static void findAndDamageExtendoGrip(Player player) {
if (player == null) if (player == null)
@ -236,16 +233,6 @@ public class ExtendoGripItem extends Item {
return AllConfigs.SERVER.curiosities.maxExtendoGripActions.get(); return AllConfigs.SERVER.curiosities.maxExtendoGripActions.get();
} }
@Override
public boolean canBeDepleted() {
return true;
}
@Override
public int getMaxDamage(ItemStack stack) {
return MAX_DAMAGE;
}
@SubscribeEvent @SubscribeEvent
public static void bufferLivingAttackEvent(LivingAttackEvent event) { public static void bufferLivingAttackEvent(LivingAttackEvent event) {
// Workaround for removed patch to get the attacking entity. // Workaround for removed patch to get the attacking entity.

View file

@ -45,7 +45,7 @@ import net.minecraftforge.common.util.FakePlayer;
public class SandPaperItem extends Item implements CustomUseEffectsItem { public class SandPaperItem extends Item implements CustomUseEffectsItem {
public SandPaperItem(Properties properties) { public SandPaperItem(Properties properties) {
super(properties.durability(8)); super(properties.defaultDurability(8));
} }
@Override @Override

View file

@ -53,7 +53,7 @@ public class PotatoCannonItem extends ProjectileWeaponItem {
public static final int MAX_DAMAGE = 100; public static final int MAX_DAMAGE = 100;
public PotatoCannonItem(Properties properties) { public PotatoCannonItem(Properties properties) {
super(properties); super(properties.defaultDurability(MAX_DAMAGE));
} }
@Override @Override
@ -81,11 +81,6 @@ public class PotatoCannonItem extends ProjectileWeaponItem {
return use(context.getLevel(), context.getPlayer(), context.getHand()).getResult(); return use(context.getLevel(), context.getPlayer(), context.getHand()).getResult();
} }
@Override
public int getItemStackLimit(ItemStack stack) {
return 1;
}
@Override @Override
public boolean isBarVisible(ItemStack stack) { public boolean isBarVisible(ItemStack stack) {
return BackTankUtil.isBarVisible(stack, maxUses()); return BackTankUtil.isBarVisible(stack, maxUses());
@ -105,20 +100,10 @@ public class PotatoCannonItem extends ProjectileWeaponItem {
return AllConfigs.SERVER.curiosities.maxPotatoCannonShots.get(); return AllConfigs.SERVER.curiosities.maxPotatoCannonShots.get();
} }
@Override
public boolean canBeDepleted() {
return true;
}
public boolean isCannon(ItemStack stack) { public boolean isCannon(ItemStack stack) {
return stack.getItem() instanceof PotatoCannonItem; return stack.getItem() instanceof PotatoCannonItem;
} }
@Override
public int getMaxDamage(ItemStack stack) {
return MAX_DAMAGE;
}
@Override @Override
public InteractionResultHolder<ItemStack> use(Level world, Player player, InteractionHand hand) { public InteractionResultHolder<ItemStack> use(Level world, Player player, InteractionHand hand) {
ItemStack stack = player.getItemInHand(hand); ItemStack stack = player.getItemInHand(hand);
@ -275,11 +260,6 @@ public class PotatoCannonItem extends ProjectileWeaponItem {
.isPresent(); .isPresent();
} }
@Override
public int getEnchantmentValue() {
return 1;
}
@Override @Override
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { public boolean onEntitySwing(ItemStack stack, LivingEntity entity) {
return true; return true;

View file

@ -1,30 +0,0 @@
package com.simibubi.create.content.palettes;
import com.simibubi.create.foundation.block.render.IBlockVertexColor;
import com.simibubi.create.foundation.utility.Color;
public class ScoriaVertexColor implements IBlockVertexColor {
public static final ScoriaVertexColor INSTANCE = new ScoriaVertexColor();
@Override
public int getColor(float x, float y, float z) {
float x2 = (float) Math.floor(z + x - y * .5);
float y2 = (float) Math.floor(y * 1.5 + x * .5 - z);
float z2 = (float) Math.floor(y - z * .5 - x);
Color color = new Color(0x448888);
if (x2 % 2 == 0)
color.modifyValue(v -> v | 0x0011ff);
if (z2 % 2 == 0)
color.modifyValue(v -> v | 0x888888);
color.mixWith(Color.rainbowColor((int) (x + y + z) * 170), .4f);
if ((x2 % 4 == 0) || (y2 % 4 == 0))
color.mixWith(Color.WHITE, .8f);
return color.getRGB() & 0x00_ffffff;
}
}

View file

@ -56,7 +56,7 @@ public class SchematicItem extends Item {
private static final Logger LOGGER = LogManager.getLogger(); private static final Logger LOGGER = LogManager.getLogger();
public SchematicItem(Properties properties) { public SchematicItem(Properties properties) {
super(properties.stacksTo(1)); super(properties);
} }
public static ItemStack create(String schematic, String owner) { public static ItemStack create(String schematic, String owner) {

View file

@ -1,76 +0,0 @@
package com.simibubi.create.foundation.block.render;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.VertexFormat;
import com.mojang.blaze3d.vertex.VertexFormatElement;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.BakedModelWrapper;
import net.minecraftforge.client.model.data.IModelData;
import net.minecraftforge.client.model.data.ModelDataMap;
import net.minecraftforge.client.model.data.ModelProperty;
public class ColoredVertexModel extends BakedModelWrapper<BakedModel> {
private static final ModelProperty<BlockPos> POSITION_PROPERTY = new ModelProperty<>();
private IBlockVertexColor color;
public ColoredVertexModel(BakedModel originalModel, IBlockVertexColor color) {
super(originalModel);
this.color = color;
}
@Override
public IModelData getModelData(BlockAndTintGetter world, BlockPos pos, BlockState state, IModelData tileData) {
return new ModelDataMap.Builder().withInitial(POSITION_PROPERTY, pos).build();
}
@Override
public List<BakedQuad> getQuads(BlockState state, Direction side, Random rand, IModelData extraData) {
List<BakedQuad> quads = super.getQuads(state, side, rand, extraData);
if (quads.isEmpty())
return quads;
if (!extraData.hasProperty(POSITION_PROPERTY))
return quads;
BlockPos data = extraData.getData(POSITION_PROPERTY);
quads = new ArrayList<>(quads);
// Optifine might've rejigged vertex data
VertexFormat format = DefaultVertexFormat.BLOCK;
int colorIndex = 0;
for (int elementId = 0; elementId < format.getElements().size(); elementId++) {
VertexFormatElement element = format.getElements().get(elementId);
if (element.getUsage() == VertexFormatElement.Usage.COLOR)
colorIndex = elementId;
}
int colorOffset = format.getOffset(colorIndex) / 4;
for (int i = 0; i < quads.size(); i++) {
BakedQuad quad = quads.get(i);
BakedQuad newQuad = QuadHelper.clone(quad);
int[] vertexData = newQuad.getVertices();
for (int vertex = 0; vertex < vertexData.length; vertex += format.getIntegerSize()) {
float x = Float.intBitsToFloat(vertexData[vertex]);
float y = Float.intBitsToFloat(vertexData[vertex + 1]);
float z = Float.intBitsToFloat(vertexData[vertex + 2]);
int color = this.color.getColor(x + data.getX(), y + data.getY(), z + data.getZ());
vertexData[vertex + colorOffset] = color;
}
quads.set(i, newQuad);
}
return quads;
}
}

View file

@ -1,8 +0,0 @@
package com.simibubi.create.foundation.block.render;
@FunctionalInterface
public interface IBlockVertexColor {
public int getColor(float x, float y, float z);
}

View file

@ -19,8 +19,6 @@ public class CClient extends ConfigBase {
public final ConfigFloat filterItemRenderDistance = f(10f, 1, "filterItemRenderDistance", Comments.filterItemRenderDistance); public final ConfigFloat filterItemRenderDistance = f(10f, 1, "filterItemRenderDistance", Comments.filterItemRenderDistance);
public final ConfigBool rainbowDebug = b(true, "enableRainbowDebug", public final ConfigBool rainbowDebug = b(true, "enableRainbowDebug",
Comments.rainbowDebug); Comments.rainbowDebug);
public final ConfigBool experimentalRendering = b(true, "experimentalRendering",
Comments.experimentalRendering);
public final ConfigInt maxContraptionLightVolume = i(16384, 0, Integer.MAX_VALUE, "maximumContraptionLightVolume", public final ConfigInt maxContraptionLightVolume = i(16384, 0, Integer.MAX_VALUE, "maximumContraptionLightVolume",
Comments.maxContraptionLightVolume); Comments.maxContraptionLightVolume);
// no group // no group
@ -95,7 +93,6 @@ public class CClient extends ConfigBase {
"Maximum Distance to the player at which items in Blocks' filter slots will be displayed" "Maximum Distance to the player at which items in Blocks' filter slots will be displayed"
}; };
static String rainbowDebug = "Show colourful debug information while the F3-Menu is open."; static String rainbowDebug = "Show colourful debug information while the F3-Menu is open.";
static String experimentalRendering = "Use modern OpenGL features to drastically increase performance.";
static String maxContraptionLightVolume = "The maximum amount of blocks for which to try and calculate dynamic contraption lighting. Decrease if large contraption cause too much lag"; static String maxContraptionLightVolume = "The maximum amount of blocks for which to try and calculate dynamic contraption lighting. Decrease if large contraption cause too much lag";
static String[] mainMenuConfigButtonRow = new String[]{ static String[] mainMenuConfigButtonRow = new String[]{
"Choose the menu row that the Create config button appears on in the main menu", "Choose the menu row that the Create config button appears on in the main menu",

View file

@ -18,8 +18,6 @@ import com.simibubi.create.content.contraptions.fluids.VirtualFluid;
import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity; import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity;
import com.simibubi.create.foundation.block.connected.CTModel; import com.simibubi.create.foundation.block.connected.CTModel;
import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour;
import com.simibubi.create.foundation.block.render.ColoredVertexModel;
import com.simibubi.create.foundation.block.render.IBlockVertexColor;
import com.tterrag.registrate.AbstractRegistrate; import com.tterrag.registrate.AbstractRegistrate;
import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.builders.BlockBuilder;
import com.tterrag.registrate.builders.BlockEntityBuilder.BlockEntityFactory; import com.tterrag.registrate.builders.BlockEntityBuilder.BlockEntityFactory;
@ -198,10 +196,6 @@ public class CreateRegistrate extends AbstractRegistrate<CreateRegistrate> {
return entry -> onClient(() -> () -> registerCasingConnectivity(entry, consumer)); return entry -> onClient(() -> () -> registerCasingConnectivity(entry, consumer));
} }
public static <T extends Block> NonNullConsumer<? super T> blockVertexColors(IBlockVertexColor colorFunc) {
return entry -> onClient(() -> () -> registerBlockVertexColor(entry, colorFunc));
}
public static <T extends Block> NonNullConsumer<? super T> blockModel( public static <T extends Block> NonNullConsumer<? super T> blockModel(
Supplier<NonNullFunction<BakedModel, ? extends BakedModel>> func) { Supplier<NonNullFunction<BakedModel, ? extends BakedModel>> func) {
return entry -> onClient(() -> () -> registerBlockModel(entry, func)); return entry -> onClient(() -> () -> registerBlockModel(entry, func));
@ -229,12 +223,6 @@ public class CreateRegistrate extends AbstractRegistrate<CreateRegistrate> {
consumer.accept(entry, CreateClient.CASING_CONNECTIVITY); consumer.accept(entry, CreateClient.CASING_CONNECTIVITY);
} }
@OnlyIn(Dist.CLIENT)
private static void registerBlockVertexColor(Block entry, IBlockVertexColor colorFunc) {
CreateClient.MODEL_SWAPPER.getCustomBlockModels()
.register(entry.delegate, model -> new ColoredVertexModel(model, colorFunc));
}
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private static void registerBlockModel(Block entry, private static void registerBlockModel(Block entry,
Supplier<NonNullFunction<BakedModel, ? extends BakedModel>> func) { Supplier<NonNullFunction<BakedModel, ? extends BakedModel>> func) {

View file

@ -15,7 +15,7 @@ import net.minecraft.client.resources.model.ModelBakery;
public class SuperRenderTypeBuffer implements MultiBufferSource { public class SuperRenderTypeBuffer implements MultiBufferSource {
private static final SuperRenderTypeBuffer INSTANCE = new SuperRenderTypeBuffer();; private static final SuperRenderTypeBuffer INSTANCE = new SuperRenderTypeBuffer();
public static SuperRenderTypeBuffer getInstance() { public static SuperRenderTypeBuffer getInstance() {
return INSTANCE; return INSTANCE;

View file

@ -10,11 +10,11 @@ import net.minecraft.world.level.LevelAccessor;
public class AnimationTickHolder { public class AnimationTickHolder {
private static int ticks; private static int ticks;
private static int paused_ticks; private static int pausedTicks;
public static void reset() { public static void reset() {
ticks = 0; ticks = 0;
paused_ticks = 0; pausedTicks = 0;
} }
public static void tick() { public static void tick() {
@ -22,7 +22,7 @@ public class AnimationTickHolder {
.isPaused()) { .isPaused()) {
ticks = (ticks + 1) % 1_728_000; // wrap around every 24 hours so we maintain enough floating point precision ticks = (ticks + 1) % 1_728_000; // wrap around every 24 hours so we maintain enough floating point precision
} else { } else {
paused_ticks = (paused_ticks + 1) % 1_728_000; pausedTicks = (pausedTicks + 1) % 1_728_000;
} }
} }
@ -31,7 +31,7 @@ public class AnimationTickHolder {
} }
public static int getTicks(boolean includePaused) { public static int getTicks(boolean includePaused) {
return includePaused ? ticks + paused_ticks : ticks; return includePaused ? ticks + pausedTicks : ticks;
} }
public static float getRenderTime() { public static float getRenderTime() {