diff --git a/src/main/java/su/a71/new_soviet/blocks/LampBlock.java b/src/main/java/su/a71/new_soviet/blocks/LampBlock.java index 0c59a76..510799e 100644 --- a/src/main/java/su/a71/new_soviet/blocks/LampBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/LampBlock.java @@ -34,11 +34,8 @@ public class LampBlock extends Block implements Waterloggable { @Nullable public BlockState getPlacementState(ItemPlacementContext ctx) { FluidState fluidState = ctx.getWorld().getFluidState(ctx.getBlockPos()); - Direction[] var3 = ctx.getPlacementDirections(); - int var4 = var3.length; - - for (int var5 = 0; var5 < var4; ++var5) { - Direction direction = var3[var5]; + Direction[] directions = ctx.getPlacementDirections(); + for (Direction direction : directions) { if (direction.getAxis() == Direction.Axis.Y) { BlockState blockState = this.getDefaultState().with(HANGING, direction == Direction.UP); if (blockState.canPlaceAt(ctx.getWorld(), ctx.getBlockPos())) { @@ -46,12 +43,11 @@ public class LampBlock extends Block implements Waterloggable { } } } - return null; } public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return (Boolean) state.get(HANGING) ? HANGING_SHAPE : STANDING_SHAPE; + return state.get(HANGING) ? HANGING_SHAPE : STANDING_SHAPE; } protected void appendProperties(StateManager.Builder builder) { @@ -64,11 +60,11 @@ public class LampBlock extends Block implements Waterloggable { } protected static Direction attachedDirection(BlockState state) { - return (Boolean) state.get(HANGING) ? Direction.DOWN : Direction.UP; + return state.get(HANGING) ? Direction.DOWN : Direction.UP; } public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { - if ((Boolean) state.get(WATERLOGGED)) { + if (state.get(WATERLOGGED)) { world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); } @@ -76,7 +72,7 @@ public class LampBlock extends Block implements Waterloggable { } public FluidState getFluidState(BlockState state) { - return (Boolean) state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state); + return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state); } public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) { @@ -88,17 +84,17 @@ public class LampBlock extends Block implements Waterloggable { shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.34375, -0.221875, 0.34375, 0.65625, 0.090625, 0.65625)); shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.125, 0.0625, 0.125, 0.875, 0.4375, 0.875)); shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.5, 0.5, 0.125, 0.5, 0.875, 0.875)); - shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.09375, 0.4375, 0.09375, 0.90625, 0.5, 0.15625)); - shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.4375, 0.875, 0.4375, 0.5625, 0.90625, 0.5625)); + shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.125, 0.5, 0.5, 0.875, 0.875, 0.5)); shape.simplify(); return shape; } public static VoxelShape getStandingShape(){ VoxelShape shape = VoxelShapes.empty(); - shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.1875, 0.4375, 0.1875, 0.8125, 1.0625, 0.8125)); - shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.375, 0, 0.375, 0.625, 0.25, 0.625)); shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.4375, 0.25, 0.4375, 0.5625, 0.875, 0.5625)); + shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.375, 0, 0.375, 0.625, 0.25, 0.625)); + shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.25, 0.6875, 0.25, 0.75, 0.9375, 0.75)); + shape = VoxelShapes.union(shape, VoxelShapes.cuboid(0.125, 0.3125, 0.125, 0.875, 0.6875, 0.875)); shape.simplify(); return shape; } diff --git a/src/main/java/su/a71/new_soviet/blocks/TVBlock.java b/src/main/java/su/a71/new_soviet/blocks/TVBlock.java index 379eb20..800987a 100644 --- a/src/main/java/su/a71/new_soviet/blocks/TVBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/TVBlock.java @@ -31,14 +31,11 @@ public class TVBlock extends HorizontalFacingBlock { @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext ctx) { Direction dir = state.get(FACING); - switch(dir) { - case NORTH, SOUTH: - return VoxelShapes.cuboid(0.0f, 0.0f, 0.1875f, 1.0f, 0.8125f, 0.8125f); - case EAST, WEST: - return VoxelShapes.cuboid(0.1875f, 0.0f, 0.0f, 0.8125f, 0.8125f, 1.0f); - default: - return VoxelShapes.fullCube(); - } + return switch (dir) { + case NORTH, SOUTH -> VoxelShapes.cuboid(0.0f, 0.0f, 0.1875f, 1.0f, 0.8125f, 0.8125f); + case EAST, WEST -> VoxelShapes.cuboid(0.1875f, 0.0f, 0.0f, 0.8125f, 0.8125f, 1.0f); + default -> VoxelShapes.fullCube(); + }; } @Override diff --git a/src/main/resources/assets/new_soviet/models/block/ceiling_fan_off.json b/src/main/resources/assets/new_soviet/models/block/ceiling_fan_off.json index 08e77cd..878558a 100644 --- a/src/main/resources/assets/new_soviet/models/block/ceiling_fan_off.json +++ b/src/main/resources/assets/new_soviet/models/block/ceiling_fan_off.json @@ -2,9 +2,9 @@ "credit": "Made with Blockbench", "texture_size": [64, 64], "textures": { - "0": "new_soviet:block/custom/appliances/fan_static", "1": "new_soviet:block/custom/appliances/fan_base", - "particle": "new_soviet:block/custom/appliances/fan_static" + "2": "new_soviet:block/custom/appliances/fan_static", + "particle": "new_soviet:block/custom/appliances/fan_animated" }, "elements": [ { @@ -64,18 +64,53 @@ "from": [-8, 1, -8], "to": [24, 1, 24], "faces": { - "up": {"uv": [16, 16, 0, 0], "texture": "#0"}, - "down": {"uv": [16, 0, 0, 16], "texture": "#0"} + "up": {"uv": [16, 16, 0, 0], "texture": "#2"}, + "down": {"uv": [16, 0, 0, 16], "texture": "#2"} } } ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 0, 180], + "scale": [0.4, 0.4, 0.4] + }, + "thirdperson_lefthand": { + "rotation": [0, 0, 180], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_righthand": { + "rotation": [-46, 0, 180], + "translation": [1.5, 0, 1.25], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [-46, 0, 180], + "translation": [1.5, 0, 1.25], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "scale": [0.4, 0.4, 0.4] + }, + "gui": { + "rotation": [45, 45, 0], + "translation": [0, 1.75, 0], + "scale": [0.6, 0.6, 0.6] + }, + "head": { + "rotation": [0, 0, 180], + "translation": [0, 2.5, 0] + }, + "fixed": { + "rotation": [90, 0, 0], + "translation": [0, 0, 4.75] + } + }, "groups": [ { "name": "root", "origin": [0, 0, 0], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [0, 1, 2, 3, 4] } ] diff --git a/src/main/resources/assets/new_soviet/models/block/ceiling_fan_on.json b/src/main/resources/assets/new_soviet/models/block/ceiling_fan_on.json index 007471b..24e3e19 100644 --- a/src/main/resources/assets/new_soviet/models/block/ceiling_fan_on.json +++ b/src/main/resources/assets/new_soviet/models/block/ceiling_fan_on.json @@ -69,13 +69,13 @@ } } ], + "display": {}, "groups": [ { "name": "root", "origin": [0, 0, 0], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [0, 1, 2, 3, 4] } ] diff --git a/src/main/resources/assets/new_soviet/models/block/radio.json b/src/main/resources/assets/new_soviet/models/block/radio.json index 75646e9..fe9be42 100644 --- a/src/main/resources/assets/new_soviet/models/block/radio.json +++ b/src/main/resources/assets/new_soviet/models/block/radio.json @@ -34,13 +34,42 @@ } } ], + "display": { + "thirdperson_righthand": { + "translation": [0, 2.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "thirdperson_lefthand": { + "translation": [0, 2.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_righthand": { + "translation": [3, 1.5, 0], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_lefthand": { + "translation": [2.75, 1.5, 0], + "scale": [0.7, 0.7, 0.7] + }, + "ground": { + "translation": [0, 0.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 1.75, 0], + "scale": [0.9, 0.9, 0.9] + }, + "head": { + "scale": [0, 0, 0] + } + }, "groups": [ { "name": "root", "origin": [0, 0, 0], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [ 0, { @@ -48,7 +77,6 @@ "origin": [-5, 9, 0.5], "color": 1, "nbt": "{}", - "armAnimationEnabled": false, "children": [1] } ] diff --git a/src/main/resources/assets/new_soviet/models/block/siren.json b/src/main/resources/assets/new_soviet/models/block/siren.json index bf5f0bc..aea0420 100644 --- a/src/main/resources/assets/new_soviet/models/block/siren.json +++ b/src/main/resources/assets/new_soviet/models/block/siren.json @@ -72,20 +72,51 @@ } } ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0.75, -4.5], + "scale": [0.55, 0.55, 0.55] + }, + "thirdperson_lefthand": { + "translation": [0, 0.25, -4.5], + "scale": [0.55, 0.55, 0.55] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 24, 0], + "translation": [1, 0.75, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [3, -1.5, 0], + "scale": [0.8, 0.8, 0.8] + }, + "head": { + "scale": [0, 0, 0] + }, + "fixed": { + "translation": [0, 0, -6.25] + } + }, "groups": [ { "name": "group", "origin": [8, 8, 8], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [ { "name": "group", "origin": [0, 0, 0], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [0, 1] }, { @@ -93,7 +124,6 @@ "origin": [0, 0, 0], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [2, 3] }, 4 diff --git a/src/main/resources/assets/new_soviet/models/block/table_lamp.json b/src/main/resources/assets/new_soviet/models/block/table_lamp.json index 1ae4a6c..277eb5d 100644 --- a/src/main/resources/assets/new_soviet/models/block/table_lamp.json +++ b/src/main/resources/assets/new_soviet/models/block/table_lamp.json @@ -1,115 +1,134 @@ { "credit": "Made with Blockbench", + "parent": "minecraft:block/cube_all", + "texture_size": [64, 64], "textures": { - "0": "new_soviet:block/custom/furniture/table_lamp", + "2": "new_soviet:block/custom/furniture/table_lamp", "particle": "new_soviet:block/custom/furniture/table_lamp" }, "elements": [ { - "from": [3, 7, 3], - "to": [13, 17, 13], - "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "from": [7, 4, 7], + "to": [9, 14, 9], "faces": { - "north": {"uv": [5, 0, 10, 5], "texture": "#0", "tintindex": 1}, - "east": {"uv": [5, 0, 10, 5], "texture": "#0", "tintindex": 1}, - "south": {"uv": [5, 0, 10, 5], "texture": "#0", "tintindex": 1}, - "west": {"uv": [5, 0, 10, 5], "texture": "#0", "tintindex": 1}, - "up": {"uv": [0, 0, 5, 5], "rotation": 180, "texture": "#0", "tintindex": 1}, - "down": {"uv": [0, 5, 5, 10], "rotation": 180, "texture": "#0", "tintindex": 1} - } - }, - { - "from": [13, 17, 13], - "to": [3, 7, 3], - "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, - "faces": { - "north": {"uv": [5, 0, 10, 5], "rotation": 180, "texture": "#0", "tintindex": 1}, - "east": {"uv": [5, 0, 10, 5], "rotation": 180, "texture": "#0", "tintindex": 1}, - "south": {"uv": [5, 0, 10, 5], "rotation": 180, "texture": "#0", "tintindex": 1}, - "west": {"uv": [5, 0, 10, 5], "rotation": 180, "texture": "#0", "tintindex": 1}, - "up": {"uv": [0, 5, 5, 10], "rotation": 180, "texture": "#0", "tintindex": 1}, - "down": {"uv": [0, 0, 5, 5], "rotation": 180, "texture": "#0", "tintindex": 1} - } - }, - { - "from": [3, 8, 3], - "to": [13, 8, 13], - "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, - "faces": { - "up": {"uv": [5, 5, 10, 10], "rotation": 180, "texture": "#0"}, - "down": {"uv": [5, 5, 10, 10], "rotation": 180, "texture": "#0"} + "north": {"uv": [0.5, 0.5, 1, 3], "texture": "#2"}, + "east": {"uv": [0, 0.5, 0.5, 3], "texture": "#2"}, + "south": {"uv": [1.5, 0.5, 2, 3], "texture": "#2"}, + "west": {"uv": [1, 0.5, 1.5, 3], "texture": "#2"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#2"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#2"} } }, { "from": [6, 0, 6], "to": [10, 4, 10], - "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, "faces": { - "north": {"uv": [11, 2, 13, 4], "texture": "#0"}, - "east": {"uv": [11, 2, 13, 4], "texture": "#0"}, - "south": {"uv": [11, 2, 13, 4], "texture": "#0"}, - "west": {"uv": [11, 2, 13, 4], "texture": "#0"}, - "up": {"uv": [11, 0, 13, 2], "rotation": 180, "texture": "#0"}, - "down": {"uv": [12, 3, 13, 3.5], "rotation": 180, "texture": "#0"} + "north": {"uv": [1, 8.5, 2, 9.5], "texture": "#2"}, + "east": {"uv": [0, 8.5, 1, 9.5], "texture": "#2"}, + "south": {"uv": [3, 8.5, 4, 9.5], "texture": "#2"}, + "west": {"uv": [2, 8.5, 3, 9.5], "texture": "#2"}, + "up": {"uv": [2, 8.5, 1, 7.5], "texture": "#2"}, + "down": {"uv": [3, 7.5, 2, 8.5], "texture": "#2"} } }, { - "from": [7, 4, 7], - "to": [9, 14, 9], - "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "from": [4, 13, 4], + "to": [12, 13, 12], "faces": { - "north": {"uv": [10, 0, 11, 5], "texture": "#0"}, - "east": {"uv": [10, 0, 11, 5], "texture": "#0"}, - "south": {"uv": [10, 0, 11, 5], "texture": "#0"}, - "west": {"uv": [10, 0, 11, 5], "texture": "#0"}, - "up": {"uv": [10, 0, 11, 1], "rotation": 180, "texture": "#0"} + "north": {"uv": [6, 6.5, 8, 6.5], "texture": "#2"}, + "east": {"uv": [4, 6.5, 6, 6.5], "texture": "#2"}, + "south": {"uv": [10, 6.5, 12, 6.5], "texture": "#2"}, + "west": {"uv": [8, 6.5, 10, 6.5], "texture": "#2"}, + "up": {"uv": [8, 6.5, 6, 4.5], "texture": "#2"}, + "down": {"uv": [8, 4.5, 6, 6.5], "texture": "#2"} + } + }, + { + "from": [4, 11, 4], + "to": [12, 15, 12], + "faces": { + "north": {"uv": [2, 6.5, 4, 7.5], "texture": "#2"}, + "east": {"uv": [0, 6.5, 2, 7.5], "texture": "#2"}, + "south": {"uv": [6, 6.5, 8, 7.5], "texture": "#2"}, + "west": {"uv": [4, 6.5, 6, 7.5], "texture": "#2"}, + "up": {"uv": [4, 6.5, 2, 4.5], "texture": "#2"}, + "down": {"uv": [6, 4.5, 4, 6.5], "texture": "#2"} + } + }, + { + "from": [12, 11, 4], + "to": [4, 15, 12], + "faces": { + "north": {"uv": [2, 6.5, 4, 7.5], "texture": "#2"}, + "east": {"uv": [0, 6.5, 2, 7.5], "texture": "#2"}, + "south": {"uv": [6, 6.5, 8, 7.5], "texture": "#2"}, + "west": {"uv": [4, 6.5, 6, 7.5], "texture": "#2"}, + "up": {"uv": [4, 6.5, 2, 4.5], "texture": "#2"}, + "down": {"uv": [6, 4.5, 4, 6.5], "texture": "#2"} + } + }, + { + "from": [2, 5, 2], + "to": [14, 11, 14], + "faces": { + "north": {"uv": [3, 3, 6, 4.5], "texture": "#2"}, + "east": {"uv": [0, 3, 3, 4.5], "texture": "#2"}, + "south": {"uv": [9, 3, 12, 4.5], "texture": "#2"}, + "west": {"uv": [6, 3, 9, 4.5], "texture": "#2"}, + "up": {"uv": [6, 3, 3, 0], "texture": "#2"}, + "down": {"uv": [9, 0, 6, 3], "texture": "#2"} + } + }, + { + "from": [14, 5, 2], + "to": [2, 11, 14], + "faces": { + "north": {"uv": [3, 3, 6, 4.5], "texture": "#2"}, + "east": {"uv": [0, 3, 3, 4.5], "texture": "#2"}, + "south": {"uv": [9, 3, 12, 4.5], "texture": "#2"}, + "west": {"uv": [6, 3, 9, 4.5], "texture": "#2"}, + "up": {"uv": [6, 3, 3, 0], "texture": "#2"}, + "down": {"uv": [9, 0, 6, 3], "texture": "#2"} } } ], "display": { "thirdperson_righthand": { - "rotation": [0, 43, 0], - "translation": [0, 1, 0], - "scale": [0.4, 0.4, 0.4] + "translation": [0, 2, 0], + "scale": [0.6, 0.6, 0.6] }, "thirdperson_lefthand": { - "rotation": [0, 43, 0], - "translation": [0, 1, 0], - "scale": [0.4, 0.4, 0.4] + "translation": [0, 2, 0], + "scale": [0.6, 0.6, 0.6] }, "firstperson_righthand": { - "rotation": [0, 35, 0], - "translation": [12, -0.5, -8.25] + "translation": [2, 0, 0], + "scale": [0.6, 0.6, 0.6] }, "firstperson_lefthand": { - "rotation": [0, 35, 0], - "translation": [12, -0.5, -8.25] + "translation": [2, 0, 0], + "scale": [0.6, 0.6, 0.6] }, "ground": { - "translation": [0, 4.75, 0], - "scale": [0.4, 0.4, 0.4] + "translation": [0, 1.25, 0], + "scale": [0.6, 0.6, 0.6] }, "gui": { - "rotation": [30, 45, 0], - "translation": [0, -1.25, 0], + "rotation": [30, 225, 0], "scale": [0.8, 0.8, 0.8] }, "head": { - "translation": [0, -3, 0], - "scale": [1.4, 1.4, 1.4] - }, - "fixed": { - "rotation": [-90, 0, 0], - "translation": [0, 0, -16], - "scale": [2, 2, 2] + "translation": [0, -0.75, 0], + "scale": [0, 0, 0] } }, "groups": [ { - "name": "group", - "origin": [8, 8, 8], + "name": "bone", + "origin": [0, 0, 0], "color": 0, - "children": [0, 1, 2, 3, 4] + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5, 6] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/models/block/tv.json b/src/main/resources/assets/new_soviet/models/block/tv.json index 0a3dbfe..062f0c9 100644 --- a/src/main/resources/assets/new_soviet/models/block/tv.json +++ b/src/main/resources/assets/new_soviet/models/block/tv.json @@ -77,13 +77,48 @@ } } ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 0], + "translation": [0, 1, -1.75], + "scale": [0.4, 0.4, 0.4] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 0], + "translation": [0, 1, -1.75], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_righthand": { + "rotation": [0, 180, 0], + "translation": [1.75, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "rotation": [0, 180, 0], + "translation": [1.75, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "scale": [0.4, 0.4, 0.4] + }, + "gui": { + "rotation": [0, -135, 0], + "translation": [0, -1.5, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "scale": [1.5, 1.5, 1.5] + }, + "fixed": { + "translation": [0, 0, -0.25] + } + }, "groups": [ { "name": "root", "origin": [0, 0, 0], "color": 0, "nbt": "{}", - "armAnimationEnabled": false, "children": [ 0, 1, @@ -93,7 +128,6 @@ "origin": [0, 14, 0], "color": 1, "nbt": "{}", - "armAnimationEnabled": false, "children": [3] }, { @@ -101,7 +135,6 @@ "origin": [0, 14, 0], "color": 2, "nbt": "{}", - "armAnimationEnabled": false, "children": [4] } ] diff --git a/src/main/resources/assets/new_soviet/textures/block/custom/appliances/fan_static.png b/src/main/resources/assets/new_soviet/textures/block/custom/appliances/fan_static.png index 9af61ca..41751ab 100644 Binary files a/src/main/resources/assets/new_soviet/textures/block/custom/appliances/fan_static.png and b/src/main/resources/assets/new_soviet/textures/block/custom/appliances/fan_static.png differ diff --git a/src/main/resources/assets/new_soviet/textures/block/custom/furniture/table_lamp.png b/src/main/resources/assets/new_soviet/textures/block/custom/furniture/table_lamp.png index a564893..7bd1ebb 100644 Binary files a/src/main/resources/assets/new_soviet/textures/block/custom/furniture/table_lamp.png and b/src/main/resources/assets/new_soviet/textures/block/custom/furniture/table_lamp.png differ