Skip to content

Commit

Permalink
feat Добавлена поддержка фейковых измерений & расширена капельку загл…
Browse files Browse the repository at this point in the history
…ушка android api
  • Loading branch information
Reider745 committed Mar 25, 2024
1 parent 9a1ecd8 commit e440516
Show file tree
Hide file tree
Showing 9 changed files with 384 additions and 11 deletions.
2 changes: 2 additions & 0 deletions src/main/java/com/reider745/InnerCoreServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import com.reider745.item.ItemMethod;
import com.reider745.item.NukkitIdConvertor;
import com.reider745.world.FakeDimensions;
import com.reider745.world.dimensions.DimensionsMethods;
import com.zhekasmirnov.apparatus.mcpe.NativeWorkbench;
import com.zhekasmirnov.apparatus.multiplayer.Network;
Expand Down Expand Up @@ -300,6 +301,7 @@ public void afterload() {
pluginManager.registerEvents(new SnowfallEverywhere(), plugin);
}

FakeDimensions.init();
DimensionsFix.init();
GlobalBlockPalette.init();
RuntimeItemsHooks.register();
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/com/reider745/entity/EntityMethod.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.reider745.event.EventListener;
import com.reider745.hooks.ItemUtils;
import com.reider745.world.BlockSourceMethods;
import com.reider745.world.FakeDimensions;
import com.zhekasmirnov.apparatus.minecraft.enums.GameEnums;
import com.zhekasmirnov.horizon.runtime.logger.Logger;
import com.zhekasmirnov.innercore.api.NativeItemInstanceExtra;
Expand Down Expand Up @@ -113,7 +114,7 @@ private static void validateThen(long entityUid, Consumer<Entity> then) {
}

public static int getEntityDimension(long entityUid) {
return validateThen(entityUid, entity -> entity.getLevel().getDimension(), -1);
return validateThen(entityUid, entity -> FakeDimensions.getFakeIdForLevel(entity.getLevel()), -1);
}

public static void getPosition(long entityUid, float[] position) {
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/com/reider745/entity/PlayerActorMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.reider745.InnerCoreServer;
import com.reider745.event.EventListener;
import com.reider745.hooks.ItemUtils;
import com.reider745.world.FakeDimensions;
import com.zhekasmirnov.innercore.api.NativeItemInstanceExtra;

import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -134,7 +135,7 @@ public static int getDimension(Player player) {
}
Level level = player.getLevel();
if (level != null) {
return player.getLevel().getDimension();
return FakeDimensions.getFakeIdForLevel(player.getLevel());
}
return 0;
}
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/com/reider745/event/EventListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import cn.nukkit.level.format.FullChunk;
import cn.nukkit.math.Vector3;
import com.reider745.world.BiomesMethods;
import com.reider745.world.FakeDimensions;
import oshi.hardware.NetworkIF;

import java.util.ArrayList;
Expand Down Expand Up @@ -153,10 +154,11 @@ public void onChunkPopulate(ChunkPopulateEvent event) {
final CallbackHelper.ICallbackApply applyPre = () -> NativeCallback.onPreChunkPostProcessed(X, Z);
final CallbackHelper.ICallbackApply applyPost = () -> NativeCallback.onChunkPostProcessed(X, Z);

BiomesMethods.onChunkPopulate(fullChunk, X, Z, level.getDimensionData().getDimensionId());
final int id = FakeDimensions.getFakeIdForLevel(level);
BiomesMethods.onChunkPopulate(fullChunk, X, Z, id);

try {
switch (level.getDimension()) {
switch (id) {
case Level.DIMENSION_OVERWORLD -> {
CallbackHelper.applyRegion(CallbackHelper.Type.PRE_GENERATION_CHUNK, level, applyPre);
CallbackHelper.applyRegion(CallbackHelper.Type.GENERATION_CHUNK_OVERWORLD, level, applyPost);
Expand Down Expand Up @@ -373,8 +375,8 @@ public void onBlockUpdate(BlockGrowEvent event) {

@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityTeleport(EntityTeleportEvent event) {
final int from = event.getFrom().level.getDimension();
final int to = event.getFrom().level.getDimension();
final int from = FakeDimensions.getFakeIdForLevel(event.getFrom().level);
final int to = FakeDimensions.getFakeIdForLevel(event.getFrom().level);

if (CustomDimension.getDimensionById(to) != null || CustomDimension.getDimensionById(from) != null)
NativeCallback.onCustomDimensionTransfer(event.getEntity().getId(), from, to);
Expand Down
Loading

0 comments on commit e440516

Please sign in to comment.