mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 06:44:40 +01:00
Chaotic day
- Publish slim jars - Allow cardboard swords to damage other arthropods - Update flywheel - Fix players getting forced into swim mode when using diving boots - Fix crash with re-packagers and stock links - Optional dep updates
This commit is contained in:
parent
a89b582ae3
commit
da87ecb952
8 changed files with 116 additions and 89 deletions
13
build.gradle
13
build.gradle
|
@ -176,7 +176,7 @@ dependencies {
|
|||
|
||||
modCompileOnly("dev.engine-room.flywheel:flywheel-forge-api-${flywheel_minecraft_version}:${flywheel_version}")
|
||||
modRuntimeOnly("dev.engine-room.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}")
|
||||
modRuntimeOnly("dev.engine-room.vanillin:vanillin-forge-${flywheel_minecraft_version}:${flywheel_version}")
|
||||
modRuntimeOnly("dev.engine-room.vanillin:vanillin-forge-${flywheel_minecraft_version}:${vanillin_version}")
|
||||
|
||||
if (ponderInWorkspace) {
|
||||
implementation project(":ponder:Common")
|
||||
|
@ -306,11 +306,22 @@ tasks.named("sourcesJar") {
|
|||
])
|
||||
}
|
||||
|
||||
final slimJar = tasks.register('slimJar', Jar) {
|
||||
archiveClassifier = 'slim'
|
||||
from sourceSets.main
|
||||
manifest.attributes([
|
||||
"Git-Hash": gitHash
|
||||
])
|
||||
}
|
||||
obfuscation.reobfuscate(slimJar, sourceSets.main)
|
||||
|
||||
project.publishing {
|
||||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
artifactId base.archivesName.get()
|
||||
from components.java
|
||||
|
||||
artifact(tasks.slimJar)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
13
changelog.md
13
changelog.md
|
@ -1,3 +1,16 @@
|
|||
------------------------------------------------------
|
||||
Create 6.0.1
|
||||
------------------------------------------------------
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
- Fixed crash when using factory gauges
|
||||
- Fixed debug info command not translating the graphics mode text
|
||||
- Fixed cardboard sword not being able to damage arthropod mobs other than the spider
|
||||
- Fixed a crash that occurred when placing a stock link on a re-packager
|
||||
- Fixed an issue where wearing diving boots and sprinting would force you into the swim position and then out of it
|
||||
right away
|
||||
|
||||
------------------------------------------------------
|
||||
Create 6.0.0
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -20,12 +20,13 @@ use_parchment = true
|
|||
# dependency versions
|
||||
registrate_version = MC1.20-1.3.3
|
||||
flywheel_minecraft_version = 1.20.1
|
||||
flywheel_version = 1.0.0-beta-212
|
||||
flywheel_version = 1.0.0-217
|
||||
vanillin_version = 1.0.0-beta-217
|
||||
jei_minecraft_version = 1.20.1
|
||||
jei_version = 15.19.0.85
|
||||
curios_minecraft_version = 1.20.1
|
||||
curios_version = 5.3.1
|
||||
ponder_version = 1.0.34
|
||||
ponder_version = 1.0.37
|
||||
mixin_extras_version = 0.4.1
|
||||
|
||||
cc_tweaked_enable = true
|
||||
|
|
|
@ -14,6 +14,8 @@ import com.simibubi.create.content.contraptions.behaviour.MovementContext;
|
|||
import com.simibubi.create.foundation.utility.worldWrappers.WrappedBlockAndTintGetter;
|
||||
import com.simibubi.create.foundation.virtualWorld.VirtualRenderWorld;
|
||||
|
||||
import net.minecraftforge.client.model.data.ModelData;
|
||||
|
||||
import dev.engine_room.flywheel.api.material.CardinalLightingMode;
|
||||
import dev.engine_room.flywheel.api.model.Model;
|
||||
import dev.engine_room.flywheel.api.task.Plan;
|
||||
|
@ -30,7 +32,7 @@ import dev.engine_room.flywheel.lib.instance.InstanceTypes;
|
|||
import dev.engine_room.flywheel.lib.instance.TransformedInstance;
|
||||
import dev.engine_room.flywheel.lib.material.SimpleMaterial;
|
||||
import dev.engine_room.flywheel.lib.model.ModelUtil;
|
||||
import dev.engine_room.flywheel.lib.model.baked.ForgeMultiBlockModelBuilder;
|
||||
import dev.engine_room.flywheel.lib.model.baked.ForgeBlockModelBuilder;
|
||||
import dev.engine_room.flywheel.lib.task.ForEachPlan;
|
||||
import dev.engine_room.flywheel.lib.task.NestedPlan;
|
||||
import dev.engine_room.flywheel.lib.task.PlanMap;
|
||||
|
@ -48,8 +50,6 @@ import net.minecraft.world.level.block.entity.BlockEntity;
|
|||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
|
||||
|
||||
import net.minecraftforge.client.model.data.ModelData;
|
||||
|
||||
public class ContraptionVisual<E extends AbstractContraptionEntity> extends AbstractEntityVisual<E> implements DynamicVisual, TickableVisual, LightUpdatedVisual, ShaderLightVisual {
|
||||
protected static final int LIGHT_PADDING = 1;
|
||||
|
||||
|
@ -97,7 +97,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
|||
}
|
||||
};
|
||||
|
||||
model = new ForgeMultiBlockModelBuilder(modelWorld, blocks.positions())
|
||||
model = new ForgeBlockModelBuilder(modelWorld, blocks.positions())
|
||||
.modelDataLookup(pos -> contraption.modelData.getOrDefault(pos, ModelData.EMPTY))
|
||||
.materialFunc((renderType, aBoolean) -> SimpleMaterial.builderOf(ModelUtil.getMaterial(renderType, aBoolean))
|
||||
.cardinalLightingMode(CardinalLightingMode.CHUNK))
|
||||
|
@ -135,7 +135,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
|||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected <T extends BlockEntity> void setupVisualizer(T be, float partialTicks) {
|
||||
protected <T extends BlockEntity> void setupVisualizer(T be, float partialTicks) {
|
||||
BlockEntityVisualizer<? super T> visualizer = (BlockEntityVisualizer<? super T>) VisualizerRegistry.getVisualizer(be.getType());
|
||||
if (visualizer == null) {
|
||||
return;
|
||||
|
@ -185,17 +185,17 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
|||
@Override
|
||||
public Plan<TickableVisual.Context> planTick() {
|
||||
return NestedPlan.of(
|
||||
ForEachPlan.of(() -> actors, ActorVisual::tick),
|
||||
tickableVisuals
|
||||
ForEachPlan.of(() -> actors, ActorVisual::tick),
|
||||
tickableVisuals
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Plan<DynamicVisual.Context> planFrame() {
|
||||
return NestedPlan.of(
|
||||
RunnablePlan.of(this::beginFrame),
|
||||
ForEachPlan.of(() -> actors, ActorVisual::beginFrame),
|
||||
dynamicVisuals
|
||||
RunnablePlan.of(this::beginFrame),
|
||||
ForEachPlan.of(() -> actors, ActorVisual::beginFrame),
|
||||
dynamicVisuals
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -204,7 +204,7 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
|||
setEmbeddingMatrices(partialTick);
|
||||
|
||||
if (hasMovedSections()) {
|
||||
sectionCollector.sections(collectLightSections());
|
||||
sectionCollector.sections(collectLightSections());
|
||||
}
|
||||
|
||||
if (hasMovedBlocks()) {
|
||||
|
@ -285,13 +285,13 @@ public class ContraptionVisual<E extends AbstractContraptionEntity> extends Abst
|
|||
int maxY = maxLight(boundingBox.maxY);
|
||||
int maxZ = maxLight(boundingBox.maxZ);
|
||||
|
||||
return minBlock != BlockPos.asLong(minX, minY, minZ) || maxBlock != BlockPos.asLong(maxX, maxY, maxZ);
|
||||
return minBlock != BlockPos.asLong(minX, minY, minZ) || maxBlock != BlockPos.asLong(maxX, maxY, maxZ);
|
||||
}
|
||||
|
||||
protected boolean hasMovedSections() {
|
||||
var boundingBox = entity.getBoundingBox();
|
||||
|
||||
var minSectionX = minLightSection(boundingBox.minX);
|
||||
var minSectionX = minLightSection(boundingBox.minX);
|
||||
var minSectionY = minLightSection(boundingBox.minY);
|
||||
var minSectionZ = minLightSection(boundingBox.minZ);
|
||||
int maxSectionX = maxLightSection(boundingBox.maxX);
|
||||
|
|
|
@ -10,24 +10,6 @@ import com.simibubi.create.AllPackets;
|
|||
import com.simibubi.create.AllSoundEvents;
|
||||
import com.simibubi.create.foundation.item.render.SimpleCustomRenderer;
|
||||
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.MobCategory;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.monster.Spider;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ItemStack.TooltipPart;
|
||||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraft.world.item.SwordItem;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
|
@ -39,6 +21,25 @@ import net.minecraftforge.fml.LogicalSide;
|
|||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||
import net.minecraftforge.network.PacketDistributor;
|
||||
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.MobCategory;
|
||||
import net.minecraft.world.entity.MobType;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ItemStack.TooltipPart;
|
||||
import net.minecraft.world.item.SwordItem;
|
||||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
|
||||
@EventBusSubscriber
|
||||
public class CardboardSwordItem extends SwordItem {
|
||||
|
||||
|
@ -79,7 +80,7 @@ public class CardboardSwordItem extends SwordItem {
|
|||
Entity attacker = event.getSource()
|
||||
.getEntity();
|
||||
LivingEntity target = event.getEntity();
|
||||
if (target == null || target instanceof Spider)
|
||||
if (target == null || target.getMobType() == MobType.ARTHROPOD)
|
||||
return;
|
||||
if (!(attacker instanceof LivingEntity livingAttacker
|
||||
&& AllItems.CARDBOARD_SWORD.isIn(livingAttacker.getItemInHand(InteractionHand.MAIN_HAND))))
|
||||
|
|
|
@ -11,6 +11,11 @@ import com.simibubi.create.foundation.block.IBE;
|
|||
import com.simibubi.create.foundation.block.WrenchableDirectionalBlock;
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
@ -32,10 +37,6 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
|||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<PackagerBlockEntity>, IWrenchable {
|
||||
|
||||
|
@ -55,7 +56,7 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
|
|||
super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack);
|
||||
AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Capability<IItemHandler> itemCap = ForgeCapabilities.ITEM_HANDLER;
|
||||
|
@ -72,7 +73,7 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Player player = context.getPlayer();
|
||||
if (preferredFacing == null) {
|
||||
Direction facing = context.getNearestLookingDirection();
|
||||
|
@ -91,13 +92,13 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
|
|||
}
|
||||
|
||||
return super.getStateForPlacement(context).setValue(POWERED, context.getLevel()
|
||||
.hasNeighborSignal(context.getClickedPos()))
|
||||
.hasNeighborSignal(context.getClickedPos()))
|
||||
.setValue(FACING, preferredFacing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult use(BlockState state, Level worldIn, BlockPos pos, Player player, InteractionHand handIn,
|
||||
BlockHitResult hit) {
|
||||
BlockHitResult hit) {
|
||||
if (player == null)
|
||||
return InteractionResult.PASS;
|
||||
|
||||
|
@ -106,7 +107,7 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
|
|||
return InteractionResult.PASS;
|
||||
if (AllBlocks.FACTORY_GAUGE.isIn(itemInHand))
|
||||
return InteractionResult.PASS;
|
||||
if (AllBlocks.STOCK_LINK.isIn(itemInHand) && !state.getValue(LINKED))
|
||||
if (AllBlocks.STOCK_LINK.isIn(itemInHand) && !(state.hasProperty(LINKED) && state.getValue(LINKED)))
|
||||
return InteractionResult.PASS;
|
||||
if (AllBlocks.PACKAGE_FROGPORT.isIn(itemInHand))
|
||||
return InteractionResult.PASS;
|
||||
|
@ -155,14 +156,14 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
|
|||
public void onNeighborChange(BlockState state, LevelReader level, BlockPos pos, BlockPos neighbor) {
|
||||
super.onNeighborChange(state, level, pos, neighbor);
|
||||
if (neighbor.relative(state.getOptionalValue(FACING)
|
||||
.orElse(Direction.UP))
|
||||
.orElse(Direction.UP))
|
||||
.equals(pos))
|
||||
withBlockEntityDo(level, pos, PackagerBlockEntity::triggerStockCheck);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos,
|
||||
boolean isMoving) {
|
||||
boolean isMoving) {
|
||||
if (worldIn.isClientSide)
|
||||
return;
|
||||
boolean previouslyPowered = state.getValue(POWERED);
|
||||
|
@ -206,12 +207,12 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
|
|||
@Override
|
||||
public int getAnalogOutputSignal(BlockState pState, Level pLevel, BlockPos pPos) {
|
||||
return getBlockEntityOptional(pLevel, pPos).map(pbe -> {
|
||||
boolean empty = pbe.inventory.getStackInSlot(0)
|
||||
.isEmpty();
|
||||
if (pbe.animationTicks != 0)
|
||||
empty = false;
|
||||
return empty ? 0 : 15;
|
||||
})
|
||||
boolean empty = pbe.inventory.getStackInSlot(0)
|
||||
.isEmpty();
|
||||
if (pbe.animationTicks != 0)
|
||||
empty = false;
|
||||
return empty ? 0 : 15;
|
||||
})
|
||||
.orElse(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,6 @@ public abstract class HeavyBootsOnPlayerMixin extends AbstractClientPlayer {
|
|||
|
||||
@ModifyReturnValue(method = "isUnderWater()Z", at = @At("RETURN"))
|
||||
private boolean create$noSwimmingWithHeavyBootsOn(boolean original) {
|
||||
return getPersistentData().contains("HeavyBoots") || original;
|
||||
return original || !getPersistentData().contains("HeavyBoots");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,52 +1,52 @@
|
|||
modLoader="javafml"
|
||||
loaderVersion="[47,)"
|
||||
issueTrackerURL="https://github.com/Creators-of-Create/Create/issues"
|
||||
license="${mod_license}"
|
||||
modLoader = "javafml"
|
||||
loaderVersion = "[47,)"
|
||||
issueTrackerURL = "https://github.com/Creators-of-Create/Create/issues"
|
||||
license = "${mod_license}"
|
||||
|
||||
[[mods]]
|
||||
modId="create"
|
||||
modId = "create"
|
||||
# The Implementation-Version property in the jar's MANIFEST.MF file will be used as the mod version at runtime
|
||||
version="${file.jarVersion}"
|
||||
displayName="${mod_name}"
|
||||
displayURL="https://www.curseforge.com/minecraft/mc-mods/create"
|
||||
logoFile="icon.png"
|
||||
version = "${file.jarVersion}"
|
||||
displayName = "${mod_name}"
|
||||
displayURL = "https://www.curseforge.com/minecraft/mc-mods/create"
|
||||
logoFile = "icon.png"
|
||||
#credits=""
|
||||
authors="${mod_author}"
|
||||
description='''
|
||||
authors = "${mod_author}"
|
||||
description = '''
|
||||
${mod_description}
|
||||
'''
|
||||
|
||||
[[dependencies.create]]
|
||||
modId="forge"
|
||||
mandatory=true
|
||||
versionRange="[47.1.3,)"
|
||||
ordering="NONE"
|
||||
side="BOTH"
|
||||
modId = "forge"
|
||||
mandatory = true
|
||||
versionRange = "[47.1.3,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.create]]
|
||||
modId="minecraft"
|
||||
mandatory=true
|
||||
versionRange="[1.20,1.21)"
|
||||
ordering="NONE"
|
||||
side="BOTH"
|
||||
modId = "minecraft"
|
||||
mandatory = true
|
||||
versionRange = "[1.20.1]"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.create]]
|
||||
modId="flywheel"
|
||||
mandatory=true
|
||||
versionRange="[1.0.0-alpha,2.0)"
|
||||
ordering="AFTER"
|
||||
side="CLIENT"
|
||||
modId = "flywheel"
|
||||
mandatory = true
|
||||
versionRange = "[1.0.0,2.0)"
|
||||
ordering = "AFTER"
|
||||
side = "CLIENT"
|
||||
|
||||
[[dependencies.create]]
|
||||
modId="ponder"
|
||||
mandatory=true
|
||||
versionRange="[0.8,)"
|
||||
ordering="AFTER"
|
||||
side="BOTH"
|
||||
modId = "ponder"
|
||||
mandatory = true
|
||||
versionRange = "[0.8,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.create]]
|
||||
modId="jei"
|
||||
mandatory=false
|
||||
versionRange="[15.19.0,)"
|
||||
ordering="NONE"
|
||||
side="CLIENT"
|
||||
modId = "jei"
|
||||
mandatory = false
|
||||
versionRange = "[15.19.0,)"
|
||||
ordering = "NONE"
|
||||
side = "CLIENT"
|
||||
|
|
Loading…
Add table
Reference in a new issue