public static PredicateBox3DHit Create(BlockOctreeSearcher s_) { PredicateBox3DHit p = new PredicateBox3DHit(); p.s = s_; return(p); }
public static PredicateBox3DHit Create(BlockOctreeSearcher s_) { PredicateBox3DHit p = new PredicateBox3DHit(); p.s = s_; return p; }
public void AudioPlayLoop(string file, bool play, bool restart) { if ((!AudioEnabled) && play) { return; } if (assetsLoadProgress.value != 1) { return; } string file_ = platform.StringReplace(file, ".wav", ".ogg"); if (GetFileLength(file_) == 0) { platform.ConsoleWriteLine(platform.StringFormat("File not found: {0}", file)); return; } if (play) { Sound_ s = null; bool alreadyPlaying = false; for (int i = 0; i < audio.soundsCount; i++) { if (audio.sounds[i] == null) { continue; } if (audio.sounds[i].name == file_) { alreadyPlaying = true; s = audio.sounds[i]; } } if (!alreadyPlaying) { s = new Sound_(); s.name = file_; s.loop = true; audio.Add(s); } s.x = EyesPosX(); s.y = EyesPosY(); s.z = EyesPosZ(); } else { for (int i = 0; i < audio.soundsCount; i++) { if (audio.sounds[i] == null) { continue; } if (audio.sounds[i].name == file_) { audio.sounds[i].stop = true; } } } }
public void Start() { textColorRenderer = new TextColorRenderer(); textColorRenderer.platform = platform; language.platform = platform; language.LoadTranslations(); GameData gamedata = new GameData(); gamedata.Start(); Config3d config3d = new Config3d(); if (platform.IsFastSystem()) { config3d.viewdistance = 128; } else { config3d.viewdistance = 32; } ITerrainTextures terrainTextures = new ITerrainTextures(); terrainTextures.game = this; d_TextureAtlasConverter = new TextureAtlasConverter(); d_TerrainTextures = terrainTextures; FrustumCulling frustumculling = new FrustumCulling(); frustumculling.d_GetCameraMatrix = this.CameraMatrix; frustumculling.platform = platform; d_FrustumCulling = frustumculling; TerrainChunkTesselatorCi terrainchunktesselator = new TerrainChunkTesselatorCi(); d_TerrainChunkTesselator = terrainchunktesselator; d_Batcher = new MeshBatcher(); d_Batcher.d_FrustumCulling = frustumculling; d_Batcher.game = this; d_FrustumCulling = frustumculling; d_Data = gamedata; d_DataMonsters = new GameDataMonsters(); d_Config3d = config3d; ModDrawParticleEffectBlockBreak particle = new ModDrawParticleEffectBlockBreak(); this.particleEffectBlockBreak = particle; this.d_Data = gamedata; d_TerrainTextures = terrainTextures; map.Reset(256, 256, 128); SunMoonRenderer sunmoonrenderer = new SunMoonRenderer(); d_SunMoonRenderer = sunmoonrenderer; d_SunMoonRenderer = sunmoonrenderer; d_Heightmap = new InfiniteMapChunked2d(); d_Heightmap.d_Map = this; d_Heightmap.Restart(); d_TerrainChunkTesselator = terrainchunktesselator; terrainchunktesselator.game = this; Packet_Inventory inventory = new Packet_Inventory(); inventory.RightHand = new Packet_Item[10]; GameDataItemsClient dataItems = new GameDataItemsClient(); dataItems.game = this; InventoryUtilClient inventoryUtil = new InventoryUtilClient(); d_Inventory = inventory; d_InventoryUtil = inventoryUtil; inventoryUtil.d_Inventory = inventory; inventoryUtil.d_Items = dataItems; d_Inventory = inventory; platform.AddOnCrash(OnCrashHandlerLeave.Create(this)); rnd = platform.RandomCreate(); clientmods = new ClientMod[128]; clientmodsCount = 0; modmanager.game = this; AddMod(new ModDrawMain()); AddMod(new ModUpdateMain()); AddMod(new ModNetworkProcess()); AddMod(new ModUnloadRendererChunks()); AddMod(new ModAutoCamera()); AddMod(new ModFpsHistoryGraph()); AddMod(new ModWalkSound()); AddMod(new ModFallDamageToPlayer()); AddMod(new ModBlockDamageToPlayer()); AddMod(new ModLoadPlayerTextures()); AddMod(new ModSendPosition()); AddMod(new ModInterpolatePositions()); AddMod(new ModRail()); AddMod(new ModCompass()); AddMod(new ModGrenade()); AddMod(new ModBullet()); AddMod(new ModExpire()); AddMod(new ModReloadAmmo()); AddMod(new ModPush()); if (platform.IsFastSystem()) { AddMod(new ModSkySphereAnimated()); } else { AddMod(new ModSkySphereStatic()); } AddMod(sunmoonrenderer); AddMod(new ModDrawTestModel()); AddMod(new ModDrawLinesAroundSelectedBlock()); AddMod(new ModDebugChunk()); AddMod(new ModDrawArea()); AddMod(new ModDrawTerrain()); AddMod(new ModDrawPlayers()); AddMod(new ModDrawPlayerNames()); AddMod(new ModDrawText()); AddMod(new ModDrawParticleEffectBlockBreak()); AddMod(new ModDrawSprites()); AddMod(new ModDrawMinecarts()); AddMod(new ModDrawHand2d()); AddMod(new ModDrawHand3d()); AddMod(new ModGuiCrafting()); AddMod(new ModDialog()); AddMod(new ModPicking()); AddMod(new ModClearInactivePlayersDrawInfo()); AddMod(new ModCameraKeys()); AddMod(new ModSendActiveMaterial()); AddMod(new ModCamera()); AddMod(new ModNetworkEntity()); AddMod(new ModGuiInventory()); AddMod(new ModGuiTouchButtons()); AddMod(new ModGuiEscapeMenu()); AddMod(new ModGuiMapLoading()); AddMod(new ModDraw2dMisc()); AddMod(new ModGuiChat()); AddMod(new ModScreenshot()); AddMod(new ModAudio()); s = new BlockOctreeSearcher(); s.platform = platform; //Prevent loding screen from immediately displaying lag symbol LastReceivedMilliseconds = platform.TimeMillisecondsFromStart(); ENABLE_DRAW_TEST_CHARACTER = platform.IsDebuggerAttached(); int maxTextureSize_ = platform.GlGetMaxTextureSize(); if (maxTextureSize_ < 1024) { maxTextureSize_ = 1024; } maxTextureSize = maxTextureSize_; MapLoadingStart(); platform.GlClearColorRgbaf(0, 0, 0, 1); if (d_Config3d.ENABLE_BACKFACECULLING) { platform.GlDepthMask(true); platform.GlEnableDepthTest(); platform.GlCullFaceBack(); platform.GlEnableCullFace(); } platform.GlEnableLighting(); platform.GlEnableColorMaterial(); platform.GlColorMaterialFrontAndBackAmbientAndDiffuse(); platform.GlShadeModelSmooth(); }
public BlockPosSide[] Pick(BlockOctreeSearcher s_, Line3D line, IntRef retCount) { //pick terrain int minX = platform.FloatToInt(MathCi.MinFloat(line.Start[0], line.End[0])); int minY = platform.FloatToInt(MathCi.MinFloat(line.Start[1], line.End[1])); int minZ = platform.FloatToInt(MathCi.MinFloat(line.Start[2], line.End[2])); if (minX < 0) { minX = 0; } if (minY < 0) { minY = 0; } if (minZ < 0) { minZ = 0; } int maxX = platform.FloatToInt(MathCi.MaxFloat(line.Start[0], line.End[0])); int maxY = platform.FloatToInt(MathCi.MaxFloat(line.Start[1], line.End[1])); int maxZ = platform.FloatToInt(MathCi.MaxFloat(line.Start[2], line.End[2])); if (maxX > map.MapSizeX) { maxX = map.MapSizeX; } if (maxY > map.MapSizeZ) { maxY = map.MapSizeZ; } if (maxZ > map.MapSizeY) { maxZ = map.MapSizeY; } int sizex = maxX - minX + 1; int sizey = maxY - minY + 1; int sizez = maxZ - minZ + 1; int size = BitTools.NextPowerOfTwo(MathCi.MaxInt(sizex, MathCi.MaxInt(sizey, sizez))); s_.StartBox = Box3D.Create(minX, minY, minZ, size); //s_.StartBox = Box3D.Create(0, 0, 0, BitTools.NextPowerOfTwo(MaxInt(MapSizeX, MaxInt(MapSizeY, MapSizeZ)))); BlockPosSide[] pick2 = s_.LineIntersection(IsBlockEmpty_.Create(this), GetBlockHeight_.Create(this), line, retCount); PickSort(pick2, retCount.value, line.Start[0], line.Start[1], line.Start[2]); return pick2; }