예제 #1
0
파일: Chunk.cs 프로젝트: geckosoft/Crafty
 public virtual int getSavedLightValue(EnumSkyBlock enumskyblock, int i, int j, int k)
 {
     if (enumskyblock == EnumSkyBlock.Sky)
     {
         return(skylightMap.getNibble(i, j, k));
     }
     if (enumskyblock == EnumSkyBlock.Block)
     {
         return(blocklightMap.getNibble(i, j, k));
     }
     else
     {
         return(0);
     }
 }
예제 #2
0
파일: Chunk.cs 프로젝트: geckosoft/Crafty
 public virtual void setLightValue(EnumSkyBlock enumskyblock, int i, int j, int k, int l)
 {
     isModified = true;
     if (enumskyblock == EnumSkyBlock.Sky)
     {
         skylightMap.setNibble(i, j, k, l);
     }
     else if (enumskyblock == EnumSkyBlock.Block)
     {
         blocklightMap.setNibble(i, j, k, l);
     }
     else
     {
         return;
     }
 }
예제 #3
0
 public override void setLightValue(EnumSkyBlock enumskyblock, int i, int j, int k, int l)
 {
 }
예제 #4
0
 public override int getSavedLightValue(EnumSkyBlock enumskyblock, int i, int j, int k)
 {
     return 0;
 }
예제 #5
0
 public override void setLightValue(EnumSkyBlock enumskyblock, int i, int j, int k, int l)
 {
 }
예제 #6
0
 public override int getSavedLightValue(EnumSkyBlock enumskyblock, int i, int j, int k)
 {
     return(0);
 }
예제 #7
0
파일: World.cs 프로젝트: riverar/Crafty
 public virtual void func_484_a(EnumSkyBlock enumskyblock, int i, int j, int k, int l, int i1, int j1,
     bool flag)
 {
     if (worldProvider.field_4306_c && enumskyblock == EnumSkyBlock.Sky)
     {
         return;
     }
     field_4268_y++;
     if (field_4268_y == 50)
     {
         field_4268_y--;
         return;
     }
     int k1 = (l + i)/2;
     int l1 = (j1 + k)/2;
     if (!blockExists(k1, 64, l1))
     {
         field_4268_y--;
         return;
     }
     if (getChunkFromBlockCoords(k1, l1).func_21101_g())
     {
         return;
     }
     int i2 = field_821_y.size();
     if (flag)
     {
         int j2 = 5;
         if (j2 > i2)
         {
             j2 = i2;
         }
         for (int l2 = 0; l2 < j2; l2++)
         {
             var metadatachunkblock =
                 (MetadataChunkBlock) field_821_y.get(field_821_y.size() - l2 - 1);
             if (metadatachunkblock.field_957_a == enumskyblock &&
                 metadatachunkblock.func_692_a(i, j, k, l, i1, j1))
             {
                 field_4268_y--;
                 return;
             }
         }
     }
     field_821_y.add(new MetadataChunkBlock(enumskyblock, i, j, k, l, i1, j1));
     int k2 = 0xf4240;
     if (field_821_y.size() > 0xf4240)
     {
         [email protected](
             (new StringBuilder()).append("More than ").append(k2).append(" updates, aborting lighting updates").
                 toString());
         field_821_y.clear();
     }
     field_4268_y--;
 }
예제 #8
0
파일: World.cs 프로젝트: riverar/Crafty
 public virtual void func_483_a(EnumSkyBlock enumskyblock, int i, int j, int k, int l, int i1, int j1)
 {
     func_484_a(enumskyblock, i, j, k, l, i1, j1, true);
 }
예제 #9
0
파일: World.cs 프로젝트: riverar/Crafty
 public virtual void setLightValue(EnumSkyBlock enumskyblock, int i, int j, int k, int l)
 {
     if (((((i >= -32000000) && (k >= -32000000)) && ((i < 0x1e84800) && (k <= 0x1e84800))) && (j >= 0)) &&
         ((j < 0x80) && chunkExists(i >> 4, k >> 4)))
     {
         return;
     }
     if (j < 0)
     {
         return;
     }
     if (j >= 128)
     {
         return;
     }
     if (!chunkExists(i >> 4, k >> 4))
     {
         return;
     }
     Chunk chunk = getChunkFromChunkCoords(i >> 4, k >> 4);
     chunk.setLightValue(enumskyblock, i & 0xf, j, k & 0xf, l);
     for (int i1 = 0; i1 < worldAccesses.size(); i1++)
     {
         ((IWorldAccess) worldAccesses.get(i1)).func_683_a(i, j, k);
     }
 }
예제 #10
0
파일: World.cs 프로젝트: riverar/Crafty
 public void neighborLightPropagationChanged(EnumSkyBlock enumskyblock, int i, int j, int k, int l)
 {
     if (worldProvider.field_4306_c && enumskyblock == EnumSkyBlock.Sky)
     {
         return;
     }
     if (!blockExists(i, j, k))
     {
         return;
     }
     if (enumskyblock == EnumSkyBlock.Sky)
     {
         if (canExistingBlockSeeTheSky(i, j, k))
         {
             l = 15;
         }
     }
     else if (enumskyblock == EnumSkyBlock.Block)
     {
         int i1 = getBlockId(i, j, k);
         if (Block.lightValue[i1] > l)
         {
             l = Block.lightValue[i1];
         }
     }
     if (getSavedLightValue(enumskyblock, i, j, k) != l)
     {
         func_483_a(enumskyblock, i, j, k, i, j, k);
     }
 }
예제 #11
0
파일: World.cs 프로젝트: riverar/Crafty
 public virtual int getSavedLightValue(EnumSkyBlock enumskyblock, int i, int j, int k)
 {
     if ((((j < 0) || (j >= 0x80)) || ((i < -32000000) || (k < -32000000))) ||
         ((i >= 0x1e84800) || (k > 0x1e84800)))
     {
         return enumskyblock.field_984_c;
     }
     int num = i >> 4;
     int num2 = k >> 4;
     if (!chunkExists(num, num2))
     {
         return 0;
     }
     return getChunkFromChunkCoords(num, num2).getSavedLightValue(enumskyblock, i & 15, j, k & 15);
 }
예제 #12
0
파일: Chunk.cs 프로젝트: riverar/Crafty
 public virtual void setLightValue(EnumSkyBlock enumskyblock, int i, int j, int k, int l)
 {
     isModified = true;
     if (enumskyblock == EnumSkyBlock.Sky)
     {
         skylightMap.setNibble(i, j, k, l);
     }
     else if (enumskyblock == EnumSkyBlock.Block)
     {
         blocklightMap.setNibble(i, j, k, l);
     }
     else
     {
         return;
     }
 }
예제 #13
0
파일: Chunk.cs 프로젝트: riverar/Crafty
 public virtual int getSavedLightValue(EnumSkyBlock enumskyblock, int i, int j, int k)
 {
     if (enumskyblock == EnumSkyBlock.Sky)
     {
         return skylightMap.getNibble(i, j, k);
     }
     if (enumskyblock == EnumSkyBlock.Block)
     {
         return blocklightMap.getNibble(i, j, k);
     }
     else
     {
         return 0;
     }
 }