Skip to content

Commit

Permalink
Merge branch 'refs/heads/1.19.2/multiloader' into 1.18.2/multiloader
Browse files Browse the repository at this point in the history
# Conflicts:
#	common/src/main/java/com/copycatsplus/copycats/mixin/foundation/copycat/BlockStateBaseCacheMixin.java
#	common/src/main/java/com/copycatsplus/copycats/mixin/foundation/copycat/BlockStateBaseMixin.java
#	common/src/main/java/com/copycatsplus/copycats/mixin/foundation/copycat/ConnectedTextureBehaviourMixin.java
#	fabric/src/generated/resources/assets/copycats/lang/en_ud.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_cogwheel.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_fluid_pipe.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_iron_door.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_large_cogwheel.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_beam.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_block.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_board.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_byte.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_door.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_fence.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_fence_gate.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_ghost_block.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_half_layer.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_half_panel.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_heavy_weighted_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_iron_trapdoor.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_ladder.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_layer.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_light_weighted_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_shaft.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slab.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slice.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slope.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slope_layer.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_stairs.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_stone_button.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_stone_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_trapdoor.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_slice.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_slope.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_stairs.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_step.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_wall.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_wooden_button.json
#	fabric/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_wooden_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/recipes/crafting/copycat_cogwheel.json
#	fabric/src/generated/resources/data/copycats/recipes/crafting/copycat_fluid_pipe.json
#	fabric/src/generated/resources/data/copycats/recipes/crafting/copycat_large_cogwheel.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_beam.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_block.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_board.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_byte.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_door.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_fence.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_fence_gate.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_ghost_block.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_half_layer.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_half_panel.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_heavy_weighted_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_iron_trapdoor.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_ladder.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_layer.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_light_weighted_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_shaft.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slab.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slice.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slope.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slope_layer.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_stairs.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_stone_button.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_stone_pressure_plate.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_trapdoor.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_slice.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_slope.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_stairs.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_step.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_wall.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_wooden_button.json
#	fabric/src/generated/resources/data/copycats/recipes/stonecutting/copycat_wooden_pressure_plate.json
#	forge/build.gradle
#	forge/src/generated/resources/assets/copycats/lang/en_ud.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_cogwheel.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_fluid_pipe.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_iron_door.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/crafting/copycat_large_cogwheel.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_beam.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_block.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_board.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_byte.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_door.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_fence.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_fence_gate.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_ghost_block.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_half_layer.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_half_panel.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_heavy_weighted_pressure_plate.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_iron_trapdoor.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_ladder.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_layer.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_light_weighted_pressure_plate.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_shaft.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slab.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slice.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slope.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_slope_layer.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_stairs.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_stone_button.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_stone_pressure_plate.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_trapdoor.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_slice.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_slope.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_stairs.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_vertical_step.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_wall.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_wooden_button.json
#	forge/src/generated/resources/data/copycats/advancements/recipes/copycats.main/stonecutting/copycat_wooden_pressure_plate.json
#	forge/src/generated/resources/data/copycats/recipes/crafting/copycat_cogwheel.json
#	forge/src/generated/resources/data/copycats/recipes/crafting/copycat_fluid_pipe.json
#	forge/src/generated/resources/data/copycats/recipes/crafting/copycat_large_cogwheel.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_beam.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_block.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_board.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_byte.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_door.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_fence.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_fence_gate.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_ghost_block.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_half_layer.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_half_panel.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_heavy_weighted_pressure_plate.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_iron_trapdoor.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_ladder.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_layer.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_light_weighted_pressure_plate.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_shaft.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slab.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slice.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slope.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_slope_layer.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_stairs.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_stone_button.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_stone_pressure_plate.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_trapdoor.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_slice.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_slope.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_stairs.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_vertical_step.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_wall.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_wooden_button.json
#	forge/src/generated/resources/data/copycats/recipes/stonecutting/copycat_wooden_pressure_plate.json
#	forge/src/main/java/com/copycatsplus/copycats/forge/mixin/compat/doubleslabs/DSConfigCommonMixin.java
#	gradle.properties
  • Loading branch information
hlysine committed Feb 4, 2025
2 parents 7f85361 + 9a1d78a commit 4803c10
Show file tree
Hide file tree
Showing 537 changed files with 15,660 additions and 3,973 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## 2.1.3 - 2024-09-15

## Changed
### Changed

- Multistate copycats can now be mined with both pickaxes and axes

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ allprojects {
content { includeGroup("com.jamieswhiteshirt") }
}
maven {
//Forge Config Api Port
//Forge Config Api Port, DiagonalBlocks
url = "https://raw.githubusercontent.com/Fuzss/modresources/main/maven/"
}
maven { // for Porting Lib: Mixin Extras, Fabric ASM
Expand Down
6 changes: 4 additions & 2 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ dependencies {
modCompileOnly("net.fabricmc.fabric-api:fabric-api:${fabric_api_version}")
modCompileOnly("mezz.jei:jei-${minecraft_version}-common-api:${jei_common_version}")

modCompileOnly("curse.maven:additional-placements-930469:${additionalplacements_curse_id}")
modCompileOnly("curse.maven:rubidium-574856:${rubidium_curse_id}")
modCompileOnly("curse.maven:additional-placements-fabric-930469:${additionalplacements_fabric_curse_id}")
modCompileOnly("curse.maven:embeddium-908741:${embeddium_curse_id}")
modCompileOnly("curse.maven:selene-499980:${moonlight_curse_fabric_id}")
modCompileOnly("curse.maven:vertical-slabs-compat-724387:${vertical_slabs_curse_fabric_id}")

annotationProcessor(implementation("io.github.llamalad7:mixinextras-common:${mixin_extras_version}"))
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.copycatsplus.copycats;

import com.copycatsplus.copycats.content.copycat.sliding_door.CopycatSlidingDoorBlockEntity;
import com.copycatsplus.copycats.content.copycat.sliding_door.CopycatSlidingDoorRenderer;
import com.copycatsplus.copycats.foundation.copycat.CCCopycatBlockEntity;
import com.copycatsplus.copycats.foundation.copycat.multistate.MultiStateCopycatBlockEntity;
import com.copycatsplus.copycats.content.copycat.cogwheel.CopycatCogWheelBlockEntity;
Expand Down Expand Up @@ -36,6 +38,7 @@ public class CCBlockEntityTypes {
CCBlocks.COPYCAT_LAYER,
CCBlocks.COPYCAT_SLICE,
CCBlocks.COPYCAT_VERTICAL_SLICE,
CCBlocks.COPYCAT_CORNER_SLICE,
CCBlocks.COPYCAT_WOODEN_BUTTON,
CCBlocks.COPYCAT_STONE_BUTTON,
CCBlocks.COPYCAT_WOODEN_PRESSURE_PLATE,
Expand All @@ -47,7 +50,9 @@ public class CCBlockEntityTypes {
CCBlocks.COPYCAT_VERTICAL_SLOPE,
CCBlocks.COPYCAT_SLOPE_LAYER,
CCBlocks.COPYCAT_DOOR,
CCBlocks.COPYCAT_IRON_DOOR
CCBlocks.COPYCAT_IRON_DOOR,
CCBlocks.COPYCAT_PANE,
CCBlocks.COPYCAT_FLAT_PANE
)
.register();

Expand All @@ -57,7 +62,10 @@ public class CCBlockEntityTypes {
CCBlocks.COPYCAT_SLAB,
CCBlocks.COPYCAT_BYTE,
CCBlocks.COPYCAT_HALF_LAYER,
CCBlocks.COPYCAT_BOARD
CCBlocks.COPYCAT_VERTICAL_HALF_LAYER,
CCBlocks.COPYCAT_STACKED_HALF_LAYER,
CCBlocks.COPYCAT_BOARD,
CCBlocks.COPYCAT_BYTE_PANEL
)
.register();

Expand Down Expand Up @@ -92,6 +100,12 @@ public class CCBlockEntityTypes {
.renderer(() -> TransparentStraightPipeRenderer::new)
.register();

public static final BlockEntityEntry<? extends CopycatSlidingDoorBlockEntity> COPYCAT_SLIDING_DOOR =
REGISTRATE.blockEntity("copycat_sliding_door", CopycatSlidingDoorBlockEntity::new)
.validBlocks(CCBlocks.COPYCAT_SLIDING_DOOR, CCBlocks.COPYCAT_FOLDING_DOOR)
.renderer(() -> CopycatSlidingDoorRenderer::new)
.register();

public static void register() {
}
}
172 changes: 167 additions & 5 deletions common/src/main/java/com/copycatsplus/copycats/CCBlocks.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.copycatsplus.copycats;

import com.copycatsplus.copycats.content.copycat.sliding_door.CopycatFoldingDoorModelCore;
import com.copycatsplus.copycats.content.copycat.sliding_door.CopycatSlidingDoorBlock;
import com.copycatsplus.copycats.content.copycat.sliding_door.CopycatSlidingDoorModelCore;
import com.copycatsplus.copycats.foundation.copycat.model.CopycatModelCore;
import com.copycatsplus.copycats.content.copycat.cogwheel.CopycatCogWheelModelCore;
import com.copycatsplus.copycats.content.copycat.cogwheel.CopycatLargeCogWheelModelCore;
Expand All @@ -16,7 +19,10 @@
public enum CCCopycatPartialModels implements ICopycatPartialModel {
SHAFT(new CopycatShaftModelCore(), BlockStateProperties.AXIS),
COGWHEEL(new CopycatCogWheelModelCore(), BlockStateProperties.AXIS),
LARGE_COGWHEEL(new CopycatLargeCogWheelModelCore(), BlockStateProperties.AXIS);
LARGE_COGWHEEL(new CopycatLargeCogWheelModelCore(), BlockStateProperties.AXIS),
SLIDING_DOOR(new CopycatSlidingDoorModelCore(true), BlockStateProperties.DOUBLE_BLOCK_HALF, BlockStateProperties.HORIZONTAL_FACING, BlockStateProperties.OPEN, CopycatSlidingDoorBlock.CT),
FOLDING_DOOR_LEFT(new CopycatFoldingDoorModelCore(true, true), BlockStateProperties.DOUBLE_BLOCK_HALF, BlockStateProperties.HORIZONTAL_FACING, BlockStateProperties.OPEN, CopycatSlidingDoorBlock.CT),
FOLDING_DOOR_RIGHT(new CopycatFoldingDoorModelCore(false, true), BlockStateProperties.DOUBLE_BLOCK_HALF, BlockStateProperties.HORIZONTAL_FACING, BlockStateProperties.OPEN, CopycatSlidingDoorBlock.CT);

/**
* Creates a new partial model with the given core and block state properties.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,21 @@ public class CCCreativeTabs {
CCBlocks.COPYCAT_BEAM,
CCBlocks.COPYCAT_SLICE,
CCBlocks.COPYCAT_VERTICAL_SLICE,
CCBlocks.COPYCAT_CORNER_SLICE,
CCBlocks.COPYCAT_GHOST_BLOCK,
CCBlocks.COPYCAT_LAYER,
CCBlocks.COPYCAT_HALF_PANEL,
CCBlocks.COPYCAT_PANE,
CCBlocks.COPYCAT_FLAT_PANE,
/* Multi-states */
CCBlocks.COPYCAT_BYTE,
CCBlocks.COPYCAT_BYTE_PANEL,
CCBlocks.COPYCAT_BOARD,
CCItems.COPYCAT_CATWALK,
CCItems.COPYCAT_BOX,
CCBlocks.COPYCAT_HALF_LAYER,
CCBlocks.COPYCAT_VERTICAL_HALF_LAYER,
CCBlocks.COPYCAT_STACKED_HALF_LAYER,
/* Slopes */
CCBlocks.COPYCAT_SLOPE,
CCBlocks.COPYCAT_VERTICAL_SLOPE,
Expand All @@ -48,6 +54,8 @@ public class CCCreativeTabs {
/* Vanilla */
CCBlocks.COPYCAT_DOOR,
CCBlocks.COPYCAT_IRON_DOOR,
CCBlocks.COPYCAT_SLIDING_DOOR,
CCBlocks.COPYCAT_FOLDING_DOOR,
CCBlocks.COPYCAT_TRAPDOOR,
CCBlocks.COPYCAT_IRON_TRAPDOOR,
CCBlocks.COPYCAT_FENCE_GATE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class CCCustomModels {
}

@ExpectPlatform
public static BakedModel getFluidPipeModel(BakedModel original, CopycatModelCore copycat) {
public static BakedModel getFluidPipeModel(BakedModel original, CopycatModelCore copycat, boolean disableAO) {
throw new AssertionError();
}
}
37 changes: 36 additions & 1 deletion common/src/main/java/com/copycatsplus/copycats/CCShapes.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.copycatsplus.copycats.CCBlockStateProperties.VerticalStairShape;
import com.copycatsplus.copycats.content.copycat.half_layer.CopycatHalfLayerBlock;
import com.copycatsplus.copycats.content.copycat.half_panel.CopycatHalfPanelBlock;
import com.copycatsplus.copycats.content.copycat.stacked_half_layer.CopycatStackedHalfLayerBlock;
import com.copycatsplus.copycats.content.copycat.vertical_half_layer.CopycatVerticalHalfLayerBlock;
import com.copycatsplus.copycats.content.copycat.vertical_stairs.CopycatVerticalStairBlock;
import com.copycatsplus.copycats.foundation.copycat.model.assembly.AssemblyTransform;
import com.copycatsplus.copycats.foundation.copycat.model.assembly.MutableAABB;
Expand Down Expand Up @@ -78,6 +80,12 @@ public class CCShapes {
aabb(layer * 2, 16, layer * 2).move(16 - layer * 2, 0, 16 - layer * 2)
)
));
public static final Map<Direction, Map<Half, Map<Integer, MutableShape>>> CORNER_SLICE =
forHorizontalDirections(forHalves(forAll(LAYERS,
layer -> shape(
aabb(layer * 2, layer * 2, layer * 2).move(16 - layer * 2, 0, 16 - layer * 2)
)
)));
public static final Map<Axis, Map<Half, Map<Integer, MutableShape>>> HALF_LAYER_BOTTOM =
forHorizontalAxes(forHalves(forAll(CopycatHalfLayerBlock.NEGATIVE_LAYERS,
layer -> shape(
Expand All @@ -90,6 +98,33 @@ public class CCShapes {
aabb(16, layer * 2, 8).move(0, 0, 8)
)
)));
public static final Map<Axis, MutableShape> HORIZONTAL_PANE = forAxes(shape(
aabb(16, 16, 2).move(0, 0, 7)
));
public static final Map<Direction, Map<Integer, MutableShape>> VERTICAL_HALF_LAYER_LEFT =
forHorizontalDirections(forAll(CopycatHalfLayerBlock.POSITIVE_LAYERS,
layer -> shape(
aabb(8, 16, layer * 2).move(8, 0, 16 - layer * 2)
)
));
public static final Map<Direction, Map<Integer, MutableShape>> VERTICAL_HALF_LAYER_RIGHT =
forHorizontalDirections(forAll(CopycatHalfLayerBlock.NEGATIVE_LAYERS,
layer -> shape(
aabb(8, 16, layer * 2).move(0, 0, 16 - layer * 2)
)
));
public static final Map<Direction, Map<Integer, MutableShape>> STACKED_HALF_LAYER_TOP =
forHorizontalDirections(forAll(CopycatHalfLayerBlock.POSITIVE_LAYERS,
layer -> shape(
aabb(16, 8, layer * 2).move(0, 8, 16 - layer * 2)
)
));
public static final Map<Direction, Map<Integer, MutableShape>> STACKED_HALF_LAYER_BOTTOM =
forHorizontalDirections(forAll(CopycatHalfLayerBlock.NEGATIVE_LAYERS,
layer -> shape(
aabb(16, 8, layer * 2).move(0, 0, 16 - layer * 2)
)
));
public static final Map<Direction, Map<Side, Map<VerticalStairShape, MutableShape>>> VERTICAL_STAIR =
forHorizontalDirections(forAll(CopycatVerticalStairBlock.SIDE, CopycatVerticalStairBlock.SHAPE,
(side, shape) ->
Expand All @@ -110,7 +145,7 @@ public class CCShapes {
})
.flipX(side == Side.RIGHT)
));
private static final int SLOPE_SUBDIVISIONS = 16;
private static final int SLOPE_SUBDIVISIONS = 8;
public static final Map<Direction, Map<Half, MutableShape>> SLOPE =
forHorizontalDirections(forHalves(shape(
IntStream.range(0, SLOPE_SUBDIVISIONS)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.copycatsplus.copycats.compat;

import com.copycatsplus.copycats.foundation.copycat.ICopycatBlock;
import com.firemerald.additionalplacements.generation.IBlockBlacklister;
import com.firemerald.additionalplacements.generation.RegistrationInitializer;
import net.minecraft.world.level.block.Block;

import java.util.function.Consumer;

public class AdditionalPlacementsCompat implements RegistrationInitializer {

@Override
public void addGlobalBlacklisters(Consumer<IBlockBlacklister<Block>> register) {
register.accept((t, rl) -> t instanceof ICopycatBlock);
}
}
29 changes: 12 additions & 17 deletions common/src/main/java/com/copycatsplus/copycats/compat/Mods.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
import static com.copycatsplus.copycats.CCLang.asId;

/**
* For compatibility with and without another mod present, we have to define load conditions of the specific code
* For compatibility with and without another mod present, we have to define load conditions of the specific code.
* <p>
* Due to this class being used in the {@link com.copycatsplus.copycats.foundation.annotation.ModMixin} annotation,
* it cannot reference most Minecraft classes due to this class being loaded before Mixins are applied.
*/
public enum Mods {
/**
Expand All @@ -25,11 +28,18 @@ public enum Mods {
ADDITIONAL_PLACEMENTS("additionalplacements"),
DIAGONAL_FENCES("diagonalfences"),
DIAGONAL_WALLS("diagonalwalls"),
DIAGONAL_WINDOWS("diagonalwindows"),
FLYWHEEL("flywheel"),
SODIUM("sodium"),
RUBIDIUM("rubidium"),
ATHENA("athena"),
INDIUM("indium"),
STARLIGHT("starlight");
LITHIUM("lithium"),
RADIUM("radium"),
STARLIGHT("starlight"),
MORE_CULLING("moreculling"),
DOUBLE_SLABS("doubleslabs"),
VERTICAL_SLAB_COMPAT("v_slab_compat");

public final String id;
public final boolean isLoaded;
Expand All @@ -44,35 +54,20 @@ public enum Mods {
this.isLoaded = getLoaded(asId(id));
}


/**
* @return the mod id
*/
public String id() {
return id;
}

public ResourceLocation rl(String path) {
return new ResourceLocation(id, path);
}

public Item getItem(String id) {
return Registry.ITEM.get(rl(id));
}

public Item getItem(ResourceLocation id) {
return Registry.ITEM.get(id);
}

public boolean getLoaded() {
return isLoaded;
}

/**
* @return a boolean of whether the mod is loaded or not based on mod id
*/


@ExpectPlatform
public static boolean getLoaded(String id) {
throw new AssertionError();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import java.util.function.Predicate;

import static com.copycatsplus.copycats.utility.BackportUtils.directionFromDelta;

import static net.minecraft.core.Direction.Axis;

@ParametersAreNonnullByDefault
Expand All @@ -63,48 +64,6 @@ public CopycatBeamBlock(Properties pProperties) {
);
}

@Override
public boolean isIgnoredConnectivitySide(BlockAndTintGetter reader, BlockState state, Direction face,
BlockPos fromPos, BlockPos toPos) {
Axis axis = state.getValue(AXIS);
BlockState toState = reader.getBlockState(toPos);

if (toState.is(this)) {
// connecting to another copycat beam
return toState.getValue(AXIS) != axis;
} else {
// doesn't connect to any other blocks
return true;
}
}

@Override
public boolean canConnectTexturesToward(BlockAndTintGetter reader, BlockPos fromPos, BlockPos toPos,
BlockState state) {
BlockState toState = reader.getBlockState(toPos);
if (!toState.is(this)) return false;
Axis axis = state.getValue(AXIS);

BlockPos diff = toPos.subtract(fromPos);
if (diff.equals(Vec3i.ZERO)) {
return true;
}
Direction face = directionFromDelta(diff.getX(), diff.getY(), diff.getZ());
if (face == null) {
return false;
}

if (toState.is(this)) {
try {
return toState.getValue(AXIS) == axis && face.getAxis() == axis;
} catch (IllegalStateException ignored) {
return false;
}
} else {
return false;
}
}

@SuppressWarnings("deprecation")
@Override
public boolean isPathfindable(@NotNull BlockState pState, @NotNull BlockGetter pLevel, @NotNull BlockPos pPos, @NotNull PathComputationType pType) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.copycatsplus.copycats.content.copycat.board;

import com.copycatsplus.copycats.CCShapes;
import com.copycatsplus.copycats.foundation.copycat.CopycatExternalContext;
import com.copycatsplus.copycats.foundation.copycat.ICopycatBlock;
import com.copycatsplus.copycats.foundation.copycat.ICustomCTBlocking;
import com.copycatsplus.copycats.foundation.copycat.multistate.IMultiStateCopycatBlock;
Expand Down Expand Up @@ -121,7 +122,7 @@ public String getPropertyFromInteraction(BlockState state, BlockGetter level, Ve
}

@Override
public String getPropertyFromRender(String renderingProperty, BlockState state, ScaledBlockAndTintGetter level, Vec3i vector, BlockPos blockPos) {
public String getPropertyFromRender(String renderingProperty, BlockState state, BlockGetter level, Vec3i vector, BlockPos blockPos) {
return renderingProperty;
}

Expand All @@ -136,7 +137,7 @@ protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockSt
}

@Override
public boolean isIgnoredConnectivitySide(String property, BlockAndTintGetter reader, BlockState state, Direction face, BlockPos fromPos, BlockPos toPos) {
public boolean isIgnoredConnectivitySide(BlockAndTintGetter reader, BlockState state, Direction face, BlockPos fromPos, BlockPos toPos, BlockState toState) {
return !reader.getBlockState(toPos).is(this);
}

Expand Down Expand Up @@ -172,8 +173,6 @@ private static VoxelShape calculateMultifaceShape(BlockState pState) {
@SuppressWarnings("deprecation")
@Override
public @NotNull VoxelShape getShape(@NotNull BlockState pState, @NotNull BlockGetter pLevel, @NotNull BlockPos pPos, @NotNull CollisionContext pContext) {
VoxelShape shapeOverride = IMultiStateCopycatBlock.blockShapeOverride(pState, pLevel, pPos, pContext);
if (shapeOverride != null) return shapeOverride;
return Objects.requireNonNull(this.shapesCache.get(pState));
}

Expand Down Expand Up @@ -295,7 +294,7 @@ public boolean hidesNeighborFace(BlockGetter level,
BlockState state,
BlockState neighborState,
Direction dir) {
return IMultiStateCopycatBlock.hidesNeighborFace(level, pos, state, neighborState, dir);
return ICopycatBlock.hidesNeighborFace(level, pos, state, neighborState, dir);
}

@Override
Expand Down
Loading

0 comments on commit 4803c10

Please sign in to comment.